Loading core/java/android/webkit/HTML5VideoView.java +14 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener { static final int STATE_PREPARED = 2; static final int STATE_PLAYING = 3; static final int STATE_RESETTED = 4; static final int STATE_RELEASED = 5; protected HTML5VideoViewProxy mProxy; Loading Loading @@ -126,7 +127,7 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener { } public void reset() { if (mCurrentState != STATE_RESETTED) { if (mCurrentState < STATE_RESETTED) { mPlayer.reset(); } mCurrentState = STATE_RESETTED; Loading @@ -138,6 +139,18 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener { } } public static void release() { if (mPlayer != null && mCurrentState != STATE_RELEASED) { mPlayer.release(); mPlayer = null; } mCurrentState = STATE_RELEASED; } public boolean isReleased() { return mCurrentState == STATE_RELEASED; } public boolean getPauseDuringPreparing() { return mPauseDuringPreparing; } Loading core/java/android/webkit/HTML5VideoViewProxy.java +5 −2 Original line number Diff line number Diff line Loading @@ -109,7 +109,8 @@ class HTML5VideoViewProxy extends Handler mBaseLayer = layer; // Don't do this for full screen mode. if (mHTML5VideoView != null && !mHTML5VideoView.isFullScreenMode()) { && !mHTML5VideoView.isFullScreenMode() && !mHTML5VideoView.isReleased()) { int currentVideoLayerId = mHTML5VideoView.getVideoLayerId(); SurfaceTexture surfTexture = HTML5VideoInline.getSurfaceTexture(currentVideoLayerId); Loading Loading @@ -214,7 +215,9 @@ class HTML5VideoViewProxy extends Handler boolean skipPrepare = false; boolean createInlineView = false; if (backFromFullScreenMode && currentVideoLayerId == videoLayerId) { if (backFromFullScreenMode && currentVideoLayerId == videoLayerId && !mHTML5VideoView.isReleased()) { skipPrepare = true; createInlineView = true; } else if(backFromFullScreenMode Loading core/java/android/webkit/WebViewClassic.java +1 −0 Original line number Diff line number Diff line Loading @@ -745,6 +745,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc // Here we just need to clean up the Surface Texture which is static. if (level > TRIM_MEMORY_UI_HIDDEN) { HTML5VideoInline.cleanupSurfaceTexture(); HTML5VideoView.release(); } WebViewClassic.nativeOnTrimMemory(level); } Loading Loading
core/java/android/webkit/HTML5VideoView.java +14 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener { static final int STATE_PREPARED = 2; static final int STATE_PLAYING = 3; static final int STATE_RESETTED = 4; static final int STATE_RELEASED = 5; protected HTML5VideoViewProxy mProxy; Loading Loading @@ -126,7 +127,7 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener { } public void reset() { if (mCurrentState != STATE_RESETTED) { if (mCurrentState < STATE_RESETTED) { mPlayer.reset(); } mCurrentState = STATE_RESETTED; Loading @@ -138,6 +139,18 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener { } } public static void release() { if (mPlayer != null && mCurrentState != STATE_RELEASED) { mPlayer.release(); mPlayer = null; } mCurrentState = STATE_RELEASED; } public boolean isReleased() { return mCurrentState == STATE_RELEASED; } public boolean getPauseDuringPreparing() { return mPauseDuringPreparing; } Loading
core/java/android/webkit/HTML5VideoViewProxy.java +5 −2 Original line number Diff line number Diff line Loading @@ -109,7 +109,8 @@ class HTML5VideoViewProxy extends Handler mBaseLayer = layer; // Don't do this for full screen mode. if (mHTML5VideoView != null && !mHTML5VideoView.isFullScreenMode()) { && !mHTML5VideoView.isFullScreenMode() && !mHTML5VideoView.isReleased()) { int currentVideoLayerId = mHTML5VideoView.getVideoLayerId(); SurfaceTexture surfTexture = HTML5VideoInline.getSurfaceTexture(currentVideoLayerId); Loading Loading @@ -214,7 +215,9 @@ class HTML5VideoViewProxy extends Handler boolean skipPrepare = false; boolean createInlineView = false; if (backFromFullScreenMode && currentVideoLayerId == videoLayerId) { if (backFromFullScreenMode && currentVideoLayerId == videoLayerId && !mHTML5VideoView.isReleased()) { skipPrepare = true; createInlineView = true; } else if(backFromFullScreenMode Loading
core/java/android/webkit/WebViewClassic.java +1 −0 Original line number Diff line number Diff line Loading @@ -745,6 +745,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc // Here we just need to clean up the Surface Texture which is static. if (level > TRIM_MEMORY_UI_HIDDEN) { HTML5VideoInline.cleanupSurfaceTexture(); HTML5VideoView.release(); } WebViewClassic.nativeOnTrimMemory(level); } Loading