summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/webkit/HTML5VideoFullScreen.java11
-rw-r--r--core/java/android/webkit/HTML5VideoView.java18
-rw-r--r--core/java/android/webkit/HTML5VideoViewProxy.java14
3 files changed, 34 insertions, 9 deletions
diff --git a/core/java/android/webkit/HTML5VideoFullScreen.java b/core/java/android/webkit/HTML5VideoFullScreen.java
index 072626661911..091868368c84 100644
--- a/core/java/android/webkit/HTML5VideoFullScreen.java
+++ b/core/java/android/webkit/HTML5VideoFullScreen.java
@@ -191,8 +191,6 @@ public class HTML5VideoFullScreen extends HTML5VideoView
if (mProgressView != null) {
mProgressView.setVisibility(View.GONE);
- mLayout.removeView(mProgressView);
- mProgressView = null;
}
mVideoWidth = mp.getVideoWidth();
@@ -314,4 +312,13 @@ public class HTML5VideoFullScreen extends HTML5VideoView
return false;
}
+ @Override
+ protected void switchProgressView(boolean playerBuffering) {
+ if (playerBuffering) {
+ mProgressView.setVisibility(View.VISIBLE);
+ } else {
+ mProgressView.setVisibility(View.GONE);
+ }
+ return;
+ }
}
diff --git a/core/java/android/webkit/HTML5VideoView.java b/core/java/android/webkit/HTML5VideoView.java
index ad6e5d3d4f31..fd3f358731db 100644
--- a/core/java/android/webkit/HTML5VideoView.java
+++ b/core/java/android/webkit/HTML5VideoView.java
@@ -78,6 +78,7 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener {
TIMEUPDATE_PERIOD);
}
mPlayer.start();
+ setPlayerBuffering(false);
}
}
@@ -296,4 +297,21 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener {
return 0;
}
+ // This is true only when the player is buffering and paused
+ public boolean mPlayerBuffering = false;
+
+ public boolean getPlayerBuffering() {
+ return mPlayerBuffering;
+ }
+
+ public void setPlayerBuffering(boolean playerBuffering) {
+ mPlayerBuffering = playerBuffering;
+ switchProgressView(playerBuffering);
+ }
+
+
+ protected void switchProgressView(boolean playerBuffering) {
+ // Only used in HTML5VideoFullScreen
+ }
+
}
diff --git a/core/java/android/webkit/HTML5VideoViewProxy.java b/core/java/android/webkit/HTML5VideoViewProxy.java
index 18c5ec6b282e..060c0bbfdde9 100644
--- a/core/java/android/webkit/HTML5VideoViewProxy.java
+++ b/core/java/android/webkit/HTML5VideoViewProxy.java
@@ -95,8 +95,10 @@ class HTML5VideoViewProxy extends Handler
// identify the exact layer on the UI thread to use the SurfaceTexture.
private static int mBaseLayer = 0;
- // This is true only when the player is buffering and paused
- private static boolean mPlayerBuffering = false;
+ private static void setPlayerBuffering(boolean playerBuffering) {
+ mHTML5VideoView.setPlayerBuffering(playerBuffering);
+ }
+
// Every time webView setBaseLayer, this will be called.
// When we found the Video layer, then we set the Surface Texture to it.
// Otherwise, we may want to delete the Surface Texture to save memory.
@@ -111,7 +113,7 @@ class HTML5VideoViewProxy extends Handler
int currentVideoLayerId = mHTML5VideoView.getVideoLayerId();
if (layer != 0 && surfTexture != null && currentVideoLayerId != -1) {
int playerState = mHTML5VideoView.getCurrentState();
- if (mPlayerBuffering)
+ if (mHTML5VideoView.getPlayerBuffering())
playerState = HTML5VideoView.STATE_NOTPREPARED;
boolean foundInTree = nativeSendSurfaceTexture(surfTexture,
layer, currentVideoLayerId, textureName,
@@ -166,7 +168,6 @@ class HTML5VideoViewProxy extends Handler
WebChromeClient client, int videoLayerId) {
int currentVideoLayerId = -1;
boolean backFromFullScreenMode = false;
- mPlayerBuffering = false;
if (mHTML5VideoView != null) {
currentVideoLayerId = mHTML5VideoView.getVideoLayerId();
if (mHTML5VideoView instanceof HTML5VideoFullScreen) {
@@ -231,7 +232,6 @@ class HTML5VideoViewProxy extends Handler
}
public static void onPrepared() {
- mPlayerBuffering = false;
if (!mHTML5VideoView.isFullScreenMode() || mHTML5VideoView.getAutostart()) {
mHTML5VideoView.start();
}
@@ -351,11 +351,11 @@ class HTML5VideoViewProxy extends Handler
break;
}
case BUFFERING_START: {
- VideoPlayer.mPlayerBuffering = true;
+ VideoPlayer.setPlayerBuffering(true);
break;
}
case BUFFERING_END: {
- VideoPlayer.mPlayerBuffering = false;
+ VideoPlayer.setPlayerBuffering(false);
break;
}
}