Merge "HTML5Audio should handle content URI" into jb-mr2-dev

This commit is contained in:
ztenghui
2013-04-08 19:58:22 +00:00
committed by Android (Google) Code Review

View File

@@ -19,6 +19,7 @@ package android.webkit;
import android.content.Context; import android.content.Context;
import android.media.AudioManager; import android.media.AudioManager;
import android.media.MediaPlayer; import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.os.Message; import android.os.Message;
@@ -84,6 +85,7 @@ class HTML5Audio extends Handler
// See http://www.whatwg.org/specs/web-apps/current-work/#event-media-timeupdate // See http://www.whatwg.org/specs/web-apps/current-work/#event-media-timeupdate
private Timer mTimer; private Timer mTimer;
private final class TimeupdateTask extends TimerTask { private final class TimeupdateTask extends TimerTask {
@Override
public void run() { public void run() {
HTML5Audio.this.obtainMessage(TIMEUPDATE).sendToTarget(); HTML5Audio.this.obtainMessage(TIMEUPDATE).sendToTarget();
} }
@@ -139,11 +141,13 @@ class HTML5Audio extends Handler
// (i.e. the webviewcore thread here) // (i.e. the webviewcore thread here)
// MediaPlayer.OnBufferingUpdateListener // MediaPlayer.OnBufferingUpdateListener
@Override
public void onBufferingUpdate(MediaPlayer mp, int percent) { public void onBufferingUpdate(MediaPlayer mp, int percent) {
nativeOnBuffering(percent, mNativePointer); nativeOnBuffering(percent, mNativePointer);
} }
// MediaPlayer.OnCompletionListener; // MediaPlayer.OnCompletionListener;
@Override
public void onCompletion(MediaPlayer mp) { public void onCompletion(MediaPlayer mp) {
mState = COMPLETE; mState = COMPLETE;
mProcessingOnEnd = true; mProcessingOnEnd = true;
@@ -156,6 +160,7 @@ class HTML5Audio extends Handler
} }
// MediaPlayer.OnErrorListener // MediaPlayer.OnErrorListener
@Override
public boolean onError(MediaPlayer mp, int what, int extra) { public boolean onError(MediaPlayer mp, int what, int extra) {
mState = ERROR; mState = ERROR;
resetMediaPlayer(); resetMediaPlayer();
@@ -164,6 +169,7 @@ class HTML5Audio extends Handler
} }
// MediaPlayer.OnPreparedListener // MediaPlayer.OnPreparedListener
@Override
public void onPrepared(MediaPlayer mp) { public void onPrepared(MediaPlayer mp) {
mState = PREPARED; mState = PREPARED;
if (mTimer != null) { if (mTimer != null) {
@@ -178,6 +184,7 @@ class HTML5Audio extends Handler
} }
// MediaPlayer.OnSeekCompleteListener // MediaPlayer.OnSeekCompleteListener
@Override
public void onSeekComplete(MediaPlayer mp) { public void onSeekComplete(MediaPlayer mp) {
nativeOnTimeupdate(mp.getCurrentPosition(), mNativePointer); nativeOnTimeupdate(mp.getCurrentPosition(), mNativePointer);
} }
@@ -231,7 +238,7 @@ class HTML5Audio extends Handler
headers.put(HIDE_URL_LOGS, "true"); headers.put(HIDE_URL_LOGS, "true");
} }
mMediaPlayer.setDataSource(url, headers); mMediaPlayer.setDataSource(mContext, Uri.parse(url), headers);
mState = INITIALIZED; mState = INITIALIZED;
mMediaPlayer.prepareAsync(); mMediaPlayer.prepareAsync();
} catch (IOException e) { } catch (IOException e) {