Index: media/base/android/java/src/org/chromium/media/MediaPlayerBridge.java |
diff --git a/media/base/android/java/src/org/chromium/media/MediaPlayerBridge.java b/media/base/android/java/src/org/chromium/media/MediaPlayerBridge.java |
index 3de39cd80061fde7e83ea5955d3f5008bf9a1b57..308a08999810630d0a2d4900022f6c93f8af1052 100644 |
--- a/media/base/android/java/src/org/chromium/media/MediaPlayerBridge.java |
+++ b/media/base/android/java/src/org/chromium/media/MediaPlayerBridge.java |
@@ -8,6 +8,7 @@ import android.content.Context; |
import android.media.MediaPlayer; |
import android.net.Uri; |
import android.os.AsyncTask; |
+import android.os.ParcelFileDescriptor; |
import android.text.TextUtils; |
import android.util.Base64; |
import android.util.Base64InputStream; |
@@ -152,6 +153,19 @@ public class MediaPlayerBridge { |
} |
@CalledByNative |
+ protected boolean setDataSourceFromFd(int fd, long offset, long length) { |
+ try { |
+ ParcelFileDescriptor parcelFd = ParcelFileDescriptor.adoptFd(fd); |
+ getLocalPlayer().setDataSource(parcelFd.getFileDescriptor(), offset, length); |
+ parcelFd.close(); |
+ return true; |
+ } catch (IOException e) { |
+ Log.e(TAG, "Failed to set data source from file descriptor: " + e); |
+ return false; |
+ } |
+ } |
+ |
+ @CalledByNative |
protected boolean setDataUriDataSource(final Context context, final String url) { |
if (mLoadDataUriTask != null) { |
mLoadDataUriTask.cancel(true); |