【发布时间】:2015-08-26 20:09:56
【问题描述】:
我将*.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 codeMediaResourceGetter可接受的文件路径是:
/mnt/sdcard/、/sdcard/ 和 "/data/data/" + context.getPackageName() + "/cache/" 否则将是 Refusing to read from unsafe file location 错误,如果使用 file:// 方案。
为此活动打开了硬件加速,setWebChromeClient、setWebViewClient 等所有设置以及setJavaScriptEnabled、setPluginState、setAllowFileAccess 等设置也都打开了。
WRITE_EXTERNAL_STORAGE 权限也存在。
我尝试使用 loadUrl、loadData 和 loadDataWithBaseURL 在 WebView 中显示此 *.mp4 文件,但视频无法播放 - 只是视频图标。
(我在 Nexus 4 上用 Android 5.1 测试过,其他内容显示来自 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,但没有解决方案。
如何使用<view>标签在WebView中显示?
【问题讨论】:
标签: android android-webview html5-video