diff --git a/core/java/android/webkit/HTML5VideoView.java b/core/java/android/webkit/HTML5VideoView.java
index fd3f358731db2..c05498a0fb495 100644
--- a/core/java/android/webkit/HTML5VideoView.java
+++ b/core/java/android/webkit/HTML5VideoView.java
@@ -3,6 +3,7 @@ package android.webkit;
import android.graphics.SurfaceTexture;
import android.media.MediaPlayer;
+import android.net.Uri;
import android.util.Log;
import android.view.SurfaceView;
import android.webkit.HTML5VideoViewProxy;
@@ -55,7 +56,7 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener {
protected boolean mAutostart;
// We need to save such info.
- protected String mUri;
+ protected Uri mUri;
protected Map mHeaders;
// The timer for timeupate events.
@@ -172,7 +173,7 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener {
public void setVideoURI(String uri, HTML5VideoViewProxy proxy) {
// When switching players, surface texture will be reused.
- mUri = uri;
+ mUri = Uri.parse(uri);
mHeaders = generateHeaders(uri, proxy);
}
@@ -207,7 +208,7 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener {
// When there is exception, we could just bail out silently.
// No Video will be played though. Write the stack for debug
try {
- mPlayer.setDataSource(mUri, mHeaders);
+ mPlayer.setDataSource(mProxy.getContext(), mUri, mHeaders);
mPlayer.prepareAsync();
} catch (IllegalArgumentException e) {
e.printStackTrace();