我已经尝试了几天,通过cordova 3.4应用程序在我的galaxy tab 4.2上播放本地视频文件。
当我使用绝对的http网址时,视频播放得很好。
以下是我的尝试:
我将视频文件放在assets / res / raw文件夹中,如下所示:Loading video failed on html5 phonegap
结果:点击播放后 - >旋转加载图标没有视频
结果:与#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 Console(22530):未捕获的TypeError:无法读取未定义的属性'html5Video':37
我想做的就是在Android上播放本地视频文件。这真的很复杂吗?
任何帮助将不胜感激。
答案 0 :(得分:2)
查看this帖子。 File插件(至少&lt; = v1.3.1)有一个Android设备的错误。此外,我不确定jaeger25 / Html5Video插件是否仍在使用cordova 3.6.x.
一种工作方法是以编程方式将视频文件从www/gruppenruf.mp4
复制到应用程序在运行时可供播放的位置。您可以使用file:///data/data/com.example.MyPackage/files/gruppenruf.mp4
。 FileTransfer cordova插件将处理此问题。
var myFilename = "gruppenruf.mp4";
var myUrl = cordova.file.applicationDirectory + "www/" + myFilename;
var fileTransfer = new FileTransfer();
var filePath = cordova.file.dataDirectory + myFilename;
fileTransfer.download(encodeURI(myUrl), filePath, (function(entry) {
/*
res = "download complete:\n"
res += "fullPath: " + entry.fullPath + "\n"
res += "localURL: " + entry.localURL + "\n"
alert(res += "nativeURL: " + entry.nativeURL + "\n")
*/
var vid = document.getElementById("myvideo");
vid.src = entry.nativeURL;
//vid.loop = true;
}), (function(error) {
alert("Video download error: source " + error.source);
alert("Video download error: target " + error.target);
}), true, {
headers: {
Authorization: "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
}
});
如果无法播放,您可能需要将点击事件监听器与其关联,或者使用vid.play();
启动视频。
答案 1 :(得分:1)
如果提到的选项不起作用,请尝试:
src =“android.resource://com.example.hello/raw/Videofile”(保留扩展名“.mp4”)
将您的视频文件放在“.. \ platforms \ android \ res \ raw”中 请注意,您不要在src中使用视频文件的扩展名。
我在这个问题上遇到了很多困难,但这对我有用=]
答案 2 :(得分:1)
由于我花了一些时间处理类似的问题,我觉得值得分享:
干杯
答案 3 :(得分:0)
您的代码在Cordova 3.4.0中停止工作,因为它们更改了文件路径结构。而不是&#39; file:///&#39;你必须使用&#c; cdvfile://&#39;。
请记住也要更新文件插件。