我将*.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://
错误。
此活动启用了硬件加速,所有设置(如setWebChromeClient
,setWebViewClient
以及setJavaScriptEnabled
,setPluginState
,setAllowFileAccess
等设置也已开启。
WRITE_EXTERNAL_STORAGE
许可也会出现。
我尝试使用*.mp4
,loadUrl
和loadData
在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>
中展示?