Merge "Fix a crash" into honeycomb-mr1

This commit is contained in:
Teng-Hui Zhu
2011-03-21 18:09:57 -07:00
committed by Android (Google) Code Review
2 changed files with 15 additions and 9 deletions

View File

@@ -209,9 +209,6 @@ public class HTML5VideoFullScreen extends HTML5VideoView
// which happens when the video view is detached from its parent
// view. This happens in the WebChromeClient before this method
// is invoked.
mTimer.cancel();
mTimer = null;
pauseAndDispatch(mProxy);
mLayout.removeView(getSurfaceView());

View File

@@ -68,6 +68,14 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener{
// common Video control FUNCTIONS:
public void start() {
if (mCurrentState == STATE_PREPARED) {
// When replaying the same video, there is no onPrepared call.
// Therefore, the timer should be set up here.
if (mTimer == null)
{
mTimer = new Timer();
mTimer.schedule(new TimeupdateTask(mProxy), TIMEUPDATE_PERIOD,
TIMEUPDATE_PERIOD);
}
mPlayer.start();
}
}
@@ -76,8 +84,12 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener{
if (mCurrentState == STATE_PREPARED && mPlayer.isPlaying()) {
mPlayer.pause();
}
// Delete the Timer to stop it since there is no stop call.
if (mTimer != null) {
mTimer.purge();
mTimer.cancel();
mTimer = null;
}
}
@@ -129,6 +141,7 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener{
mVideoLayerId = videoLayerId;
mSaveSeekTime = position;
mAutostart = autoStart;
mTimer = null;
}
protected HTML5VideoView() {
@@ -153,8 +166,6 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener{
// When switching players, surface texture will be reused.
mUri = uri;
mHeaders = generateHeaders(uri, proxy);
mTimer = new Timer();
}
// Listeners setup FUNCTIONS:
@@ -228,11 +239,9 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener{
public void onPrepared(MediaPlayer mp) {
mCurrentState = STATE_PREPARED;
seekTo(mSaveSeekTime);
if (mProxy != null)
if (mProxy != null) {
mProxy.onPrepared(mp);
mTimer.schedule(new TimeupdateTask(mProxy), TIMEUPDATE_PERIOD, TIMEUPDATE_PERIOD);
}
}
// Pause the play and update the play/pause button