mab*_*mab 3 javascript video android cordova cordova-plugins
我想做的是
video标记src属性的值.第二部分应该不是问题.
关于第一项任务,有很多很好的结构化教程,如Raymond Camden演示了如何在cordova环境中通过javascript获取本地文件.
但是,使用最新版本的cordova,我无法使用它.
视频位于内置的apk文件中assets/www/videos/testvid.webm或res/raw/testvid.webm内置.两种变化都不起作用.
myPath = cordova.file.applicationDirectory; // -> file:///android_asset/
//myPath += "www/videos/testvid.webm";
Run Code Online (Sandbox Code Playgroud)
分别
myPath = cordova.file.applicationStorageDirectory; // -> file:///data/data/com.example.MyPackage/
//myPath += "raw/testvid.webm";
Run Code Online (Sandbox Code Playgroud)
然后:
window.resolveLocalFileSystemURL(myPath, gotFile, fail);
function gotFile(entry){
if(entry.isDirectory)
alert JSON.stringify(entry.getFile("testvid.webm"));
}
Run Code Online (Sandbox Code Playgroud)
在res/xml/config.xml添加访问权限
<preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external,root" />
Run Code Online (Sandbox Code Playgroud)
错误是{code:1} - > NOT_FOUND_ERR
我究竟做错了什么?如何导航到该文件,或者在哪里可以找到它?
我想到了!
在cordova文件插件的android版本中有一个错误.
解决方法是将文件从应用程序本身的资产目录file:///android_asset/(cordova.file.applicationDirectory)传输到手机上的工作目录,如file:///data/data/com.example.MyPackage/files(cordova.file.dataDirectory).然后将视频的源URL设置为此新文件.
XMLHttpRequest以及FileTransfer都可以解决这个问题.
var myFilename = "testvid.webm";
var myUrl = cordova.file.applicationDirectory + "www/videos/" + 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("someID");
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=="
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3499 次 |
| 最近记录: |