我试图让用户在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
我不知道还有什么可以尝试的。谢谢你的帮助。
答案 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"。