diff --git a/app/src/leanback/res/layout/activity_detail.xml b/app/src/leanback/res/layout/activity_detail.xml
index f9d144e9b..6d5a499e6 100644
--- a/app/src/leanback/res/layout/activity_detail.xml
+++ b/app/src/leanback/res/layout/activity_detail.xml
@@ -37,6 +37,7 @@
diff --git a/app/src/leanback/res/layout/activity_live.xml b/app/src/leanback/res/layout/activity_live.xml
index c6e9cee7f..c567a517b 100644
--- a/app/src/leanback/res/layout/activity_live.xml
+++ b/app/src/leanback/res/layout/activity_live.xml
@@ -32,6 +32,7 @@
diff --git a/app/src/mobile/res/layout/activity_detail.xml b/app/src/mobile/res/layout/activity_detail.xml
index 81064a893..af8d074d4 100644
--- a/app/src/mobile/res/layout/activity_detail.xml
+++ b/app/src/mobile/res/layout/activity_detail.xml
@@ -32,6 +32,7 @@
diff --git a/app/src/mobile/res/layout/activity_live.xml b/app/src/mobile/res/layout/activity_live.xml
index 0d1834d1d..0321c3e25 100644
--- a/app/src/mobile/res/layout/activity_live.xml
+++ b/app/src/mobile/res/layout/activity_live.xml
@@ -32,6 +32,7 @@
diff --git a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java
index 7816067c6..2ce14e9ed 100644
--- a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java
+++ b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java
@@ -1,6 +1,7 @@
package tv.danmaku.ijk.media.player.ui;
import android.content.Context;
+import android.content.res.TypedArray;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
@@ -42,7 +43,6 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
private static final int RENDER_SURFACE_VIEW = 0;
private static final int RENDER_TEXTURE_VIEW = 1;
- private int mVideoRotationDegree;
private int mVideoWidth;
private int mVideoHeight;
@@ -57,6 +57,8 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
private long mCurrentBufferPosition;
private float mCurrentSpeed;
+ private boolean mKeepContentOnPlayerReset;
+
private IRenderView.ISurfaceHolder mSurfaceHolder;
private IMediaPlayer.Listener mListener;
private IRenderView mRenderView;
@@ -78,6 +80,7 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
super(context, attrs, defStyleAttr);
LayoutInflater.from(context).inflate(R.layout.ijk_player_view, this);
mAudioManager = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
+ if (attrs != null) initAttr(context, attrs, defStyleAttr);
mContentFrame = findViewById(R.id.ijk_content_frame);
mSubtitleView = findViewById(R.id.ijk_subtitle);
mCurrentState = STATE_IDLE;
@@ -85,6 +88,15 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
mCurrentSpeed = 1;
}
+ private void initAttr(Context context, AttributeSet attrs, int defStyleAttr) {
+ TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.IjkVideoView, defStyleAttr, 0);
+ try {
+ mKeepContentOnPlayerReset = a.getBoolean(R.styleable.IjkVideoView_keep_content_on_player_reset, mKeepContentOnPlayerReset);
+ } finally {
+ a.recycle();
+ }
+ }
+
public IjkVideoView decode(int decode) {
mCurrentDecode = decode;
return this;
@@ -147,6 +159,7 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
}
private void setVideoURI(Uri uri, Map headers) {
+ if (!mKeepContentOnPlayerReset) removeRenderView();
openVideo(uri, headers);
requestLayout();
invalidate();
@@ -440,7 +453,6 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
public void onInfo(IMediaPlayer mp, int what, int extra) {
mListener.onInfo(mp, what, extra);
if (what == IMediaPlayer.MEDIA_INFO_VIDEO_ROTATION_CHANGED) {
- mVideoRotationDegree = extra;
if (mRenderView != null) mRenderView.setVideoRotation(extra);
}
}
diff --git a/ijkplayer/src/main/res/values/attrs.xml b/ijkplayer/src/main/res/values/attrs.xml
new file mode 100644
index 000000000..4f71ddac8
--- /dev/null
+++ b/ijkplayer/src/main/res/values/attrs.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+