Phonegap 3.5从外部SD卡Android中获取音频/视频文件

时间:2014-10-21 16:44:29

标签: javascript html5 cordova

目前我无法从外部SD卡获取视频(.mp4)和音频(.wav)文件,基本上我想获取文件并将它们转换为base64并将它们发送到服务器。

这是我的代码

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {

 // fileSystem's root is -> file:///storage/emulated/0/

  var url = "cdvfile://localhost/root/storage/extSdCard/DCIM/Camera/20141018_143740.mp4";

  window.resolveLocalFileSystemURL(url, function(fileObj) {

     var fullPath = fileObj.fullPath;

     // fullPath -> file:/storage/extSdCard/DCIM/Camera/20141018_143740.mp4

     fileSystem.root.getFile(fullPath, null, function(fileEntry) {

       fileEntry.file(function(file) {

        //.. FileReader function to convert the file to base64 by reader.readAsDataURL(file)

       },errorFunc);


     },errorFunc);

  },errorFunc);
},errorFunc);

现在的问题是我无法获取.mp4文件,即我的fileSystem.root.getFile给了我错误 错误代码1,即找不到文件

检查了几个堆栈溢出问题和http://rickluna.com/wp/2014/01/accessing-external-storage-in-android-phonegap-3-3/博客后,我认为我的问题出在" root"

即。我的fileSystem obj(requestFileSystem方法的成功回调)如下所示:

filesystem: FileSystem
fullPath: "/"
isDirectory: true
isFile: false
name: ""
nativeURL: "file:///storage/emulated/0/"
__proto__: utils.extend.F

那么可以改变根目录吗?即从 file:/// storage / emulated / 0 / file:/// storage / ,以便我可以调用getFile并传递绝对url ie / extSdCard / DCIM何时(file:/// storage /)成为root

我甚至试过改变根,即

fileSystem.root.fullPath =' file:/// storage /';

即使我尝试更改fileSystem对象的nativeURL属性,但它无法正常工作

PS。博客中给出的解决方案对我没有用

ps ps。当我的绝对URL是:file:///storage/emulated/0/MRS/fileName.txt时,相同的代码工作正常 我在函数中传递相对url,即fileSystem.root.getFile(" MRS / fileName.txt",...)

0 个答案:

没有答案