Merge "Audio continue to played even if paused manually"

This commit is contained in:
Victoria Lease
2013-03-05 23:20:45 +00:00
committed by Gerrit Code Review

View File

@ -60,6 +60,7 @@ class HTML5Audio extends Handler
private static int STARTED = 4; private static int STARTED = 4;
private static int COMPLETE = 5; private static int COMPLETE = 5;
private static int PAUSED = 6; private static int PAUSED = 6;
private static int PAUSED_TRANSITORILY = 7;
private static int STOPPED = -2; private static int STOPPED = -2;
private static int ERROR = -1; private static int ERROR = -1;
@ -247,7 +248,7 @@ class HTML5Audio extends Handler
// resume playback // resume playback
if (mMediaPlayer == null) { if (mMediaPlayer == null) {
resetMediaPlayer(); resetMediaPlayer();
} else if (mState != ERROR && !mMediaPlayer.isPlaying()) { } else if (mState == PAUSED_TRANSITORILY && !mMediaPlayer.isPlaying()) {
mMediaPlayer.start(); mMediaPlayer.start();
mState = STARTED; mState = STARTED;
} }
@ -265,7 +266,9 @@ class HTML5Audio extends Handler
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK: case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
// Lost focus for a short time, but we have to stop // Lost focus for a short time, but we have to stop
// playback. // playback.
if (mState != ERROR && mMediaPlayer.isPlaying()) pause(); if (mState != ERROR && mMediaPlayer.isPlaying()) {
pause(PAUSED_TRANSITORILY);
}
break; break;
} }
} }
@ -298,12 +301,16 @@ class HTML5Audio extends Handler
} }
private void pause() { private void pause() {
pause(PAUSED);
}
private void pause(int state) {
if (mState == STARTED) { if (mState == STARTED) {
if (mTimer != null) { if (mTimer != null) {
mTimer.purge(); mTimer.purge();
} }
mMediaPlayer.pause(); mMediaPlayer.pause();
mState = PAUSED; mState = state;
} }
} }