OSDN Git Service

Fix the Uri parsing issue
authorTeng-Hui Zhu <ztenghui@google.com>
Wed, 11 May 2011 18:04:40 +0000 (11:04 -0700)
committerTeng-Hui Zhu <ztenghui@google.com>
Thu, 12 May 2011 20:53:48 +0000 (13:53 -0700)
Switching back to use the setDataSource with Uri, which can handle both the
file and http path correctly.

Change-Id: I5bfc1d01a8de0a4f8640ffceafbc17984833097a

core/java/android/webkit/HTML5VideoView.java

index fd3f358..c05498a 100644 (file)
@@ -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<String, String> 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();