gpt4 book ai didi

javascript - Cordova 3.6.3 File plugin - 在android上获取本地视频文件

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:17 24 4
gpt4 key购买 nike

我想做的是

  1. 通过 cordovas javascript API 获取设备上视频文件的 URI
  2. 将 URI 设置为 HTML5 video 标记的 src 属性的值。

第二部分应该没问题。
关于第一个任务,有很多很好的结构化教程,例如 Raymond Camden'scordova 中演示如何通过 javascript 获取本地文件环境。

但是,使用最新版本的 cordova,我无法让它工作。

视频文件

视频位于构建的 apk 文件中的 assets/www/videos/testvid.webmres/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

我做错了什么?如何导航到该文件,或者在哪里可以找到它?

最佳答案

我想通了!

有一个bug在 cordova 文件插件的 android 版本中。

解决方法是将文件从应用程序本身的 Assets 目录 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=="
}
});

关于javascript - Cordova 3.6.3 File plugin - 在android上获取本地视频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26217509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com