我正在使用PhoneGap Build来构建iOS应用程序,并使用weinre进行调试。到目前为止,一切都很好。

我正在尝试使用媒体捕获和文件API捕获视频并获取其base64表示形式。我可以打开录像机,拍摄视频,然后返回。问题是我无法获取resolveLocalFileSystemURL打开给定路径。每次返回时,错误代码为5,对于该错误代码,我似乎找不到单个答案。这是在真实设备上运行的,因此模拟器没有问题。

我已经检查了所有可以通过Google和Stack Overflow找到的帖子,已经阅读了博客帖子和其中的评论。几天来,我一直在挠头。提出答案的每个人要么使用Xcode(而不是Build),要么答案根本不适合我。这是一件很简单的事情,我不知道问题可能在哪里。

下面是我的代码。下面是控制台输出。

elements["media_video"].onclick = function(event) {
    navigator.device.capture.captureVideo(
        function(files) {
            for ( var i = 0 ; i < files.length ; ++i ) {
                var file = files[i];
                var name = file.name;
                var path = file.fullPath;
                var type = file.type;
                var lastModifiedDate = file.lastModifiedDate;
                var size = file.size;
                console.log(0, name, path, type, lastModifiedDate, size);
                var reader = new FileReader();
                reader.onloadend = function(event) {
                    console.log(3, event.target.result);
                };
                window.resolveLocalFileSystemURL(
                    path,
                    function(entry) {
                        console.log(1, entry.name);
                        reader.readAsDataURL(entry);
                        // send base64 data to server
                    },
                    function(error) {
                        console.log(2, error.code);
                    }
                );
            }
        },
        function(error) {},
        {
            limit:  1
        }
    );
};



0“ capturedvideo.MOV”“ / private / var / mobile / Applications / [应用程序
[uuid] /tmp/capture/capturedvideo.MOV“”视频/快速时间“ 1409866447000
205788

2 5


编辑1
我没有可使用Xcode的Mac,这就是为什么我选择基于云的服务。

编辑2
在iOS v7.1.2上进行测试。

最佳答案

取消/private的初始路径(在较旧的iOS版本[/localhost部分)。

出于某种原因,iOS认为,即使完整路径最终落在沙箱中,您也无法访问以private开头的任何目录。至少可以说,调试令人沮丧,但是一旦知道要查找的内容,这很容易解决。



编辑8/5/2014 6:06:



我刚才注意到,您也没有提供URL方案-您必须在路径前添加file://,否则会出现此特定错误。在调用resolveLocalFileSystemURL之前,您的最终路径应如下所示:

file:///var/mobile/Applications/[application uuid]/tmp/capture/capturedvideo.MOV

10-05 20:13
查看更多