iOS上的Phonegap 3.5 Media Plugin错误"无法使用AvAudioRecorder开始录制"

时间:2014-08-11 20:58:10

标签: ios cordova audio phonegap-plugins

我试图让用户在Phonegap应用中录制音频文件。它适用于Android,但在iOS上,我应该开始录制时出现以下错误:

“无法使用AvAudioRecorder开始录制”。

我使用.wav文件名,我首先创建文件,我已经按照我发现的所有说明操作,并且一直收到错误。

这是一段代码:

theFileSystem.root.getFile(filename,{create:true},function(fileEntry){
    mediaFileURL = fileEntry.toURL();
    console.log('Created file ' + mediaFileURL);
    mediaRec = new Media(mediaFileURL, function(){
        //console.log('Media File created');
    }, function(err){
        alert('Error creating the media file: ' + err.message);
        console.log(mediaFileURL);
        for(k in err){
            console.log(k + ': ' + err[k]);
        }            
        stopRecordingFile();
    });
    mediaRec.startRecord();
},function(err){
    alert("Error setting audio file"); 
});    

我看到控制台消息'Created file ...',因此文件已成功创建。然后我得到了错误。

媒体插件版本为0.2.11

我不知道还有什么可以尝试的。谢谢你的帮助。

3 个答案:

答案 0 :(得分:6)

我自己解决了这个问题。

我会在这里留下解决方案,以防有人帮忙。

对于iOS,需要更改:

mediaFileURL = fileEntry.toURL();

到此:

mediaFileURL = fileEntry.fullPath;

此外,即使我请求持久文件系统,iOS也将文件保存在tmp文件夹中。因此,为了使用FileTransfer上传文件,我用它来引用文件(我尝试了不同的方法,这是有效的方法):

sendFileURL = cordova.file.tempDirectory + filename;

答案 1 :(得分:0)

对Url的修复解决了我的问题。

fixFileName = mediaFiles[i].fullPath.indexOf('file://') > -1 ? mediaFiles[i].fullPath : "file://" + mediaFiles[i].fullPath;

答案 2 :(得分:-1)

确定。这个令人毛骨悚然的错误已经解决了。

我所做的只是将文件扩展名设为大写,即 制作" .wav"到" .WAV"。