Merge branch 'fix/vectorArtWork' of https://github.com/mitrejcevski/ExoPlayer into dev-v2
This commit is contained in:
commit
94fa4d9989
@ -26,8 +26,11 @@ import android.graphics.BitmapFactory;
|
|||||||
import android.graphics.Matrix;
|
import android.graphics.Matrix;
|
||||||
import android.graphics.RectF;
|
import android.graphics.RectF;
|
||||||
import android.support.annotation.IntDef;
|
import android.support.annotation.IntDef;
|
||||||
|
import android.graphics.drawable.BitmapDrawable;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
@ -262,7 +265,7 @@ public class PlayerView extends FrameLayout {
|
|||||||
private Player player;
|
private Player player;
|
||||||
private boolean useController;
|
private boolean useController;
|
||||||
private boolean useArtwork;
|
private boolean useArtwork;
|
||||||
private Bitmap defaultArtwork;
|
private Drawable defaultArtwork;
|
||||||
private @ShowBuffering int showBuffering;
|
private @ShowBuffering int showBuffering;
|
||||||
private boolean keepContentOnPlayerReset;
|
private boolean keepContentOnPlayerReset;
|
||||||
private @Nullable ErrorMessageProvider<? super ExoPlaybackException> errorMessageProvider;
|
private @Nullable ErrorMessageProvider<? super ExoPlaybackException> errorMessageProvider;
|
||||||
@ -394,7 +397,7 @@ public class PlayerView extends FrameLayout {
|
|||||||
artworkView = findViewById(R.id.exo_artwork);
|
artworkView = findViewById(R.id.exo_artwork);
|
||||||
this.useArtwork = useArtwork && artworkView != null;
|
this.useArtwork = useArtwork && artworkView != null;
|
||||||
if (defaultArtworkId != 0) {
|
if (defaultArtworkId != 0) {
|
||||||
defaultArtwork = BitmapFactory.decodeResource(context.getResources(), defaultArtworkId);
|
defaultArtwork = ContextCompat.getDrawable(getContext(), defaultArtworkId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Subtitle view.
|
// Subtitle view.
|
||||||
@ -583,7 +586,7 @@ public class PlayerView extends FrameLayout {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Returns the default artwork to display. */
|
/** Returns the default artwork to display. */
|
||||||
public Bitmap getDefaultArtwork() {
|
public Drawable getDefaultArtwork() {
|
||||||
return defaultArtwork;
|
return defaultArtwork;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -592,8 +595,20 @@ public class PlayerView extends FrameLayout {
|
|||||||
* present in the media.
|
* present in the media.
|
||||||
*
|
*
|
||||||
* @param defaultArtwork the default artwork to display.
|
* @param defaultArtwork the default artwork to display.
|
||||||
|
* @deprecated use (@link {@link #setDefaultArtwork(Drawable)} instead.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public void setDefaultArtwork(Bitmap defaultArtwork) {
|
public void setDefaultArtwork(Bitmap defaultArtwork) {
|
||||||
|
setDefaultArtwork(new BitmapDrawable(getResources(), defaultArtwork));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the default artwork to display if {@code useArtwork} is {@code true} and no artwork is
|
||||||
|
* present in the media.
|
||||||
|
*
|
||||||
|
* @param defaultArtwork the default artwork to display
|
||||||
|
*/
|
||||||
|
public void setDefaultArtwork(Drawable defaultArtwork) {
|
||||||
if (this.defaultArtwork != defaultArtwork) {
|
if (this.defaultArtwork != defaultArtwork) {
|
||||||
this.defaultArtwork = defaultArtwork;
|
this.defaultArtwork = defaultArtwork;
|
||||||
updateForCurrentTrackSelections(/* isNewPlayer= */ false);
|
updateForCurrentTrackSelections(/* isNewPlayer= */ false);
|
||||||
@ -1118,7 +1133,7 @@ public class PlayerView extends FrameLayout {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (setArtworkFromBitmap(defaultArtwork)) {
|
if (setDrawableArtwork(defaultArtwork)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1132,26 +1147,20 @@ public class PlayerView extends FrameLayout {
|
|||||||
if (metadataEntry instanceof ApicFrame) {
|
if (metadataEntry instanceof ApicFrame) {
|
||||||
byte[] bitmapData = ((ApicFrame) metadataEntry).pictureData;
|
byte[] bitmapData = ((ApicFrame) metadataEntry).pictureData;
|
||||||
Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapData, 0, bitmapData.length);
|
Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapData, 0, bitmapData.length);
|
||||||
return setArtworkFromBitmap(bitmap);
|
return setDrawableArtwork(new BitmapDrawable(getResources(), bitmap));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean setArtworkFromBitmap(Bitmap bitmap) {
|
private boolean setDrawableArtwork(Drawable drawable) {
|
||||||
if (bitmap != null) {
|
if(drawable != null) {
|
||||||
int bitmapWidth = bitmap.getWidth();
|
artworkView.setImageDrawable(drawable);
|
||||||
int bitmapHeight = bitmap.getHeight();
|
if(contentFrame != null) {
|
||||||
if (bitmapWidth > 0 && bitmapHeight > 0) {
|
contentFrame.setAspectRatio(0);
|
||||||
if (contentFrame != null) {
|
|
||||||
contentFrame.setAspectRatio((float) bitmapWidth / bitmapHeight);
|
|
||||||
}
|
|
||||||
artworkView.setImageBitmap(bitmap);
|
|
||||||
artworkView.setVisibility(VISIBLE);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void hideArtwork() {
|
private void hideArtwork() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user