iOS上的Phonegap 3.5媒体插件错误“无法使用AvAudioRecorder开始录制”

我正在尝试让用户在Phonegap应用程序中录制audio文件。 它在Android上运行良好,但在iOS上,当录制开始时,出现以下错误:

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

我使用.wav文件名,我首先创build文件,我已经按照我find的所有说明,我不断收到错误。

这是一段代码:

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 …”,所以文件成功创build。 然后我得到错误。

媒体插件版本是0.2.11

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

我自己解决了这个问题

我会离开这里的解决scheme,以帮助别人。

对于iOS,这需要更改:

 mediaFileURL = fileEntry.toURL(); 

对此:

 mediaFileURL = fileEntry.fullPath; 

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

 sendFileURL = cordova.file.tempDirectory + filename; 

以下修复Url解决了我的问题。

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

好。 这令人毛骨悚然的错误被解决

我所做的只是将文件扩展名改为大写,即将“.wav”改为“.WAV”。