Skip to content

Commit

Permalink
Merge "Audio continue to played even if paused manually" into jb-mr1
Browse files Browse the repository at this point in the history
  • Loading branch information
Whitehawkx authored and Gerrit Code Review committed May 12, 2013
2 parents 7d3dd4b + abf308a commit 252c8a9
Showing 1 changed file with 18 additions and 11 deletions.
29 changes: 18 additions & 11 deletions core/java/android/webkit/HTML5Audio.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,14 +54,15 @@ class HTML5Audio extends Handler
// The private status of the view that created this player
private IsPrivateBrowsingEnabledGetter mIsPrivateBrowsingEnabledGetter;

private static int IDLE = 0;
private static int INITIALIZED = 1;
private static int PREPARED = 2;
private static int STARTED = 4;
private static int COMPLETE = 5;
private static int PAUSED = 6;
private static int STOPPED = -2;
private static int ERROR = -1;
private static int IDLE = 0;
private static int INITIALIZED = 1;
private static int PREPARED = 2;
private static int STARTED = 4;
private static int COMPLETE = 5;
private static int PAUSED = 6;
private static int PAUSED_TRANSITORILY = 7;
private static int STOPPED = -2;
private static int ERROR = -1;

private int mState = IDLE;

Expand Down Expand Up @@ -247,7 +248,7 @@ public void onAudioFocusChange(int focusChange) {
// resume playback
if (mMediaPlayer == null) {
resetMediaPlayer();
} else if (mState != ERROR && !mMediaPlayer.isPlaying()) {
} else if (mState == PAUSED_TRANSITORILY && !mMediaPlayer.isPlaying()) {
mMediaPlayer.start();
mState = STARTED;
}
Expand All @@ -265,7 +266,9 @@ public void onAudioFocusChange(int focusChange) {
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
// Lost focus for a short time, but we have to stop
// playback.
if (mState != ERROR && mMediaPlayer.isPlaying()) pause();
if (mState != ERROR && mMediaPlayer.isPlaying()) {
pause(PAUSED_TRANSITORILY);
}
break;
}
}
Expand Down Expand Up @@ -298,12 +301,16 @@ private void play() {
}

private void pause() {
pause(PAUSED);
}

private void pause(int state) {
if (mState == STARTED) {
if (mTimer != null) {
mTimer.purge();
}
mMediaPlayer.pause();
mState = PAUSED;
mState = state;
}
}

Expand Down

0 comments on commit 252c8a9

Please sign in to comment.