Cordova 3.6.3文件插件-在android上获取本地视频文件
Cordova 3.6.3 File plugin - get local video file on android
我想做的是
- 通过cordovas javascript API获取设备上视频文件的URI
- 将URI设置为HTML5
video
标记的src
属性的值
第二部分应该不是问题
关于第一项任务,有很多结构良好的教程,比如Raymond Camden的教程,演示如何在cordova环境中通过javascript获取本地文件。
然而,有了最新版本的科多瓦,我无法让它发挥作用。
视频文件
视频位于构建的apk文件中的assets/www/videos/testvid.webm
或res/raw/testvid.webm
中。两种变体都不起作用。
javascript
myPath = cordova.file.applicationDirectory; // -> file:///android_asset/
//myPath += "www/videos/testvid.webm";
分别
myPath = cordova.file.applicationStorageDirectory; // -> file:///data/data/com.example.MyPackage/
//myPath += "raw/testvid.webm";
然后:
window.resolveLocalFileSystemURL(myPath, gotFile, fail);
function gotFile(entry){
if(entry.isDirectory)
alert JSON.stringify(entry.getFile("testvid.webm"));
}
权限
在res/xml/config.xml
中添加了访问权限
<preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external,root" />
错误为{code:1}->NOT_FOUND_ERR
我做错了什么?如何导航到文件,或者在哪里可以找到它?
我想通了!
android版本的cordova文件插件中存在一个错误。
解决方法是将文件从应用程序本身的资产目录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=="
}
});
相关文章:
- 通过ajax到php文件获取单选按钮值
- jquery自动完成从本地文件获取数据
- 从外部js文件获取变量
- 应用程序脚本-自动从谷歌驱动器删除超过3天的文件-获取文件列表
- Ajax请求从php文件获取数据
- 从Javascript文件获取值
- 如何从外部JavaScript文件获取函数参数
- AngularJS从JSON本地文件获取数据
- 如何从另一个文件获取 HTML 元素值
- 从外部 json 文件获取数据
- 从HTML页面执行外部.js文件,通过发送输入.xml并从外部文件获取输出.xml.js文件
- 将数据从单独的 JavaScript 文件获取到数组中
- jQuery Ajax 文件获取问题
- AJAX/Jquery - 从 php 文件获取响应
- 根据 JSON 文件获取对象的架构
- 如何从输入类型=文件获取数据,修改它,然后将其插入到此输入JS中
- HTML和Javascript:使用输入文件获取完整的目录路径名
- 从本地文件获取JSON的角度服务不起作用
- 尝试从我的节点服务器加载脚本文件 - 获取 404
- 需要从外部文件获取JSON