目前我无法从外部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。博客中给出的解决方案对我没有用