Merge change 6154 into donut

* changes:
  Fix bug (#1947162)
This commit is contained in:
Android (Google) Code Review
2009-07-06 11:37:13 -07:00

View File

@ -55,6 +55,7 @@ public class VideoView extends SurfaceView implements MediaPlayerControl {
private SurfaceHolder mSurfaceHolder = null; private SurfaceHolder mSurfaceHolder = null;
private MediaPlayer mMediaPlayer = null; private MediaPlayer mMediaPlayer = null;
private boolean mIsPrepared; private boolean mIsPrepared;
private boolean mIsPlaybackCompleted;
private int mVideoWidth; private int mVideoWidth;
private int mVideoHeight; private int mVideoHeight;
private int mSurfaceWidth; private int mSurfaceWidth;
@ -260,7 +261,7 @@ public class VideoView extends SurfaceView implements MediaPlayerControl {
mSeekWhenPrepared = 0; mSeekWhenPrepared = 0;
} }
if (mStartWhenPrepared) { if (mStartWhenPrepared) {
mMediaPlayer.start(); start();
mStartWhenPrepared = false; mStartWhenPrepared = false;
if (mMediaController != null) { if (mMediaController != null) {
mMediaController.show(); mMediaController.show();
@ -281,7 +282,7 @@ public class VideoView extends SurfaceView implements MediaPlayerControl {
mSeekWhenPrepared = 0; mSeekWhenPrepared = 0;
} }
if (mStartWhenPrepared) { if (mStartWhenPrepared) {
mMediaPlayer.start(); start();
mStartWhenPrepared = false; mStartWhenPrepared = false;
} }
} }
@ -291,6 +292,7 @@ public class VideoView extends SurfaceView implements MediaPlayerControl {
private MediaPlayer.OnCompletionListener mCompletionListener = private MediaPlayer.OnCompletionListener mCompletionListener =
new MediaPlayer.OnCompletionListener() { new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) { public void onCompletion(MediaPlayer mp) {
mIsPlaybackCompleted = true;
if (mMediaController != null) { if (mMediaController != null) {
mMediaController.hide(); mMediaController.hide();
} }
@ -405,7 +407,9 @@ public class VideoView extends SurfaceView implements MediaPlayerControl {
mMediaPlayer.seekTo(mSeekWhenPrepared); mMediaPlayer.seekTo(mSeekWhenPrepared);
mSeekWhenPrepared = 0; mSeekWhenPrepared = 0;
} }
mMediaPlayer.start(); if (!mIsPlaybackCompleted) {
start();
}
if (mMediaController != null) { if (mMediaController != null) {
mMediaController.show(); mMediaController.show();
} }
@ -490,6 +494,7 @@ public class VideoView extends SurfaceView implements MediaPlayerControl {
} }
public void start() { public void start() {
mIsPlaybackCompleted = false;
if (mMediaPlayer != null && mIsPrepared) { if (mMediaPlayer != null && mIsPrepared) {
mMediaPlayer.start(); mMediaPlayer.start();
mStartWhenPrepared = false; mStartWhenPrepared = false;