我已经尝试了几天,通过cordova 3.4应用程序在我的galaxy tab 4.2上播放本地视频文件 .
当我使用绝对的http url时,视频播放就好了 .
这是我尝试过的:
- 我把视频文件放在assets / res / raw文件夹中,如下所示:Loading video failed on html5 phonegap
结果:点击播放后 - >旋转加载图标没有视频
- www文件夹中的视频:
结果:与#1相同
<video id="myvideo" controls="controls" width="400">
<source src="file:///android_asset/www/gruppenruf.mp4" />
</video>
结果:与#1相同
我将文件夹的所有权限设置为777
然后我尝试使用https://github.com/jaeger25/Html5Video插件
安装插件后,我得到的是:03-06 18:27:06.953:E / Web控制台(22530):未捕获的TypeError:无法读取未定义的属性'html5Video':37
我想要做的就是在Android上播放本地视频文件 . 这真的很复杂吗?
任何帮助,将不胜感激 .
4 回答
看看this帖子 . File插件(至少<= v1.3.1)有一个Android设备的错误 . 另外,我不确定jaeger25 / Html5Video插件是否仍在使用cordova 3.6.x.
一种工作方法是以编程方式将视频文件从
www/gruppenruf.mp4
复制到应用程序在运行时可以播放的位置 . 您可以使用file:///data/data/com.example.MyPackage/files/gruppenruf.mp4
. FileTransfer cordova插件将负责这一点 .如果它不播放,您可能希望将click事件侦听器链接到它或使用
vid.play();
启动视频 .如果提到的选项不起作用,请尝试:
src =“android.resource://com.example.hello/raw/Videofile”(保留扩展名“.mp4”)
将您的视频文件放在“.. \ platforms \ android \ res \ raw”中注意您不要在src中使用视频文件的扩展名 .
我在这个问题上遇到了很多困难,但这对我有用=]
由于我花了一些时间处理类似问题,我觉得值得分享:
如果你想全屏显示视频:不要使用html标签,因为有一个媒体插件 . 如果您不需要离线播放:指向Web服务器的视频src将正常工作 .
如果您需要离线播放且视频是应用包的一部分,请查看https://github.com/jaeger25/Html5Video(它有助于在公共场所自动复制视频文件)
如果你需要动态下载的离线视频:(我的情况)
使用fileTransfer插件
将cordova.file.externalDataDirectory中的文件另存为公共文件
在某些情况下,您可能需要强制将文件公开
你可以通过将'file.setReadable(true, false);'添加到FileTransfer.java第820行来实现
干杯
您的代码在Cordova 3.4.0中停止工作,因为它们更改了文件路径结构 . 而不是'file:///',你必须使用'cdvfile://' .
请记住也要更新文件插件 .