Update IjkVideoView.java

pull/123/head
FongMi 3 years ago
parent 6601f377f4
commit ea9982ad51
  1. 14
      ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java

@ -47,6 +47,7 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
private float mCurrentSpeed = 1;
private int mCurrentAspectRatio;
private int mCurrentRender;
private int mCurrentDecode;
private int mStartPosition;
@ -109,6 +110,7 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
}
private void setRenderView(IRenderView renderView) {
clearRender();
mRenderView = renderView;
setResizeMode(mCurrentAspectRatio);
addView(mRenderView.getView(), new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.CENTER));
@ -125,7 +127,7 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
}
public void setRender(int render) {
clearRender();
mCurrentRender = render;
switch (render) {
case RENDER_TEXTURE_VIEW:
TextureRenderView texture = new TextureRenderView(getContext());
@ -156,8 +158,8 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
}
public void stopPlayback() {
if (mRenderView != null) mRenderView.getView().invalidate();
if (mIjkPlayer == null) return;
clearRender();
mIjkPlayer.stop();
mIjkPlayer.release();
mIjkPlayer = null;
@ -177,6 +179,7 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
createPlayer();
fixUserAgent();
setSpeed(mCurrentSpeed);
setRender(mCurrentRender);
mCurrentBufferPosition = 0;
mCurrentBufferPercentage = 0;
mIjkPlayer.setDataSource(mAppContext, mUri, mHeaders);
@ -362,9 +365,14 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
return;
}
mSurfaceHolder = null;
releaseWithoutStop();
}
};
public void releaseWithoutStop() {
if (mIjkPlayer != null) mIjkPlayer.setDisplay(null);
}
public void release(boolean clearState) {
if (mIjkPlayer == null) return;
mIjkPlayer.reset();
@ -491,8 +499,6 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl
mIjkPlayer.setOnTimedTextListener(mOnTimedTextListener);
mIjkPlayer.setOption(codec, "skip_frame", 0);
mIjkPlayer.setOption(codec, "skip_loop_filter", 48);
mIjkPlayer.setOption(format, "analyzeduration", 1);
mIjkPlayer.setOption(format, "analyzemaxduration", 10);
mIjkPlayer.setOption(format, "buffer_size", 1024 * 1024);
mIjkPlayer.setOption(format, "dns_cache_clear", 1);
mIjkPlayer.setOption(format, "dns_cache_timeout", -1);

Loading…
Cancel
Save