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”。