summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/widget/VideoView.java11
1 files changed, 8 insertions, 3 deletions
diff --git a/core/java/android/widget/VideoView.java b/core/java/android/widget/VideoView.java
index 6d3a2d3602c0..20dd8a6bed91 100644
--- a/core/java/android/widget/VideoView.java
+++ b/core/java/android/widget/VideoView.java
@@ -55,6 +55,7 @@ public class VideoView extends SurfaceView implements MediaPlayerControl {
private SurfaceHolder mSurfaceHolder = null;
private MediaPlayer mMediaPlayer = null;
private boolean mIsPrepared;
+ private boolean mIsPlaybackCompleted;
private int mVideoWidth;
private int mVideoHeight;
private int mSurfaceWidth;
@@ -260,7 +261,7 @@ public class VideoView extends SurfaceView implements MediaPlayerControl {
mSeekWhenPrepared = 0;
}
if (mStartWhenPrepared) {
- mMediaPlayer.start();
+ start();
mStartWhenPrepared = false;
if (mMediaController != null) {
mMediaController.show();
@@ -281,7 +282,7 @@ public class VideoView extends SurfaceView implements MediaPlayerControl {
mSeekWhenPrepared = 0;
}
if (mStartWhenPrepared) {
- mMediaPlayer.start();
+ start();
mStartWhenPrepared = false;
}
}
@@ -291,6 +292,7 @@ public class VideoView extends SurfaceView implements MediaPlayerControl {
private MediaPlayer.OnCompletionListener mCompletionListener =
new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
+ mIsPlaybackCompleted = true;
if (mMediaController != null) {
mMediaController.hide();
}
@@ -405,7 +407,9 @@ public class VideoView extends SurfaceView implements MediaPlayerControl {
mMediaPlayer.seekTo(mSeekWhenPrepared);
mSeekWhenPrepared = 0;
}
- mMediaPlayer.start();
+ if (!mIsPlaybackCompleted) {
+ start();
+ }
if (mMediaController != null) {
mMediaController.show();
}
@@ -490,6 +494,7 @@ public class VideoView extends SurfaceView implements MediaPlayerControl {
}
public void start() {
+ mIsPlaybackCompleted = false;
if (mMediaPlayer != null && mIsPrepared) {
mMediaPlayer.start();
mStartWhenPrepared = false;