我有一个Cordova应用程序,它将视频文件下载到本地存储,然后使用HTML <video>
标记播放它。这在适用于Cordova版本3.7.1的iOS和Android上运行良好。我最近将Cordova更新到最新版本(6.3.1),现在视频无法在Android上播放。 iOS工作正常。
视频文件已保存到file:///storage/emulated/0/Android/data/org.my.package/foobar.mp4
;使用ADB,我可以看到文件被正确保存(使用FileTransfer
)到该位置。文件大小正确,权限是用户和组可读的。
视频似乎根本没有加载; v.src
为空,v.duration
为NaN
,v.networkState
为3(NETWORK_NO_SOURCE
)
视频元素
<video id="video" playsinline="1" webkit-plays-inline="1" poster preload="metadata">
<source id="source" type="video/mp4"
src="file:///storage/emulated/0/Android/data/org.my.package/foobar.mp4">
</video>
自从将Cordova升级到6.3.1后,我还没有改变HTML或Javascript。
答案 0 :(得分:1)
(删除了之前的错误答案。)
我认为问题实际上是Crosswalk插件。添加或删除插件只有在删除平台并再次添加后才会生效,所以我没有怀疑。
具体来说,我打开了Crosswork选项--enable-unified-media-pipeline
以试图帮助我解决另一个问题(设置视频播放速度的能力)。删除该选项使其再次起作用。这是违反直觉的,因为通常建议您启用此选项以修复视频问题。