在webview中使用HTML5视频标签显示CD卡中的视频文件

时间:2015-08-26 20:09:56

标签: android android-webview html5-video

我将*.mp4文件加载到CD卡到/data/data/package_name/cache目录。

如果我使用webView.loadUrl("/data/data/package_name/cache/filename.mp4") - 它有效。

但我想在WebView中使用<video> HTML5标记:

显示它

<video src="file:///data/data/package_name/cache/filename.mp4"></video>

根据source code MediaResourceGetter可接受的filePathes是: 如果使用/mnt/sdcard/方案,则/sdcard/"/data/data/" + context.getPackageName() + "/cache/"Refusing to read from unsafe file location会出现file://错误。

此活动启用了硬件加速,所有设置(如setWebChromeClientsetWebViewClient以及setJavaScriptEnabledsetPluginStatesetAllowFileAccess等设置也已开启。 WRITE_EXTERNAL_STORAGE许可也会出现。

我尝试使用*.mp4loadUrlloadData在WebView中显示此loadDataWithBaseURL文件,但视频无法播放 - 只是视频图标。 (我已经使用Android 5.1测试了Nexus 4,并显示了来自html的其他内容。)

logcat中没有错误或警告,只需:

D/MediaResourceGetter﹕ canonicalized file path: /data/data/com.myapp/cache/filename.mp4
D/MediaResourceGetter﹕ resource has video
D/MediaResourceGetter﹕ extracted valid metadata: MediaMetadata[durationInMilliseconds=12804, width=480, height=198, success=true]

我找到the same problem,但没有解决方案。

如何使用WebView代码在<view>中展示?