簡體   English   中英

Cordova 3.6.3文件插件 - 在android上獲取本地視頻文件

[英]Cordova 3.6.3 File plugin - get local video file on android

我想做的是

  1. 通過cordovas javascript API獲取設備上的視頻文件的URI
  2. 將URI設置為HTML5 video標記的src屬性的值。

第二部分應該不是問題。
關於第一項任務,有很多很好的結構化教程,如Raymond Camden演示如何在cordova環境中通過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

我究竟做錯了什么? 如何導航到該文件,或者在哪里可以找到它?

我想到了!

在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=="
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM