我正在使用AudioKit的最新版本4.8。我已经建立了一个简单的音频链来录制麦克风中的一些音频,并且在模拟器上也能很好地工作,但是当我切换到物理设备时,什么都没有录制,并且它一直在打印,这是控制台:
AKNodeRecorder.swift:process(buffer:time:):137:Write failed: error -> Cannot complete process.(“com.apple.coreaudio.avfaudio”Error -50.)
因此,您看不到任何内容。 -50是糟糕的参数错误,但显然我找不到我所缺少的东西。音频会话设置为playAndRecord
,并且DID请求使用麦克风。如果我不使用AKNodeRecorder
,而是添加自己的水龙头,则在尝试AKAudioFile.write(from:)
时仍会出现相同的错误。
这是我的代码:
guard let file = try? AKAudioFile(forWriting: destinationURL, settings: [AVFormatIDKey: kAudioFormatMPEG4AAC, AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue]) else {
return
}
microphone?.start()
let recorder = try? AKNodeRecorder(node: microphone, file: file)
try? recorder?.record()
我该怎么办?
P.S。在我升级到AudioKit 4.8之前,我使用的是4.7,并没有给我-50的错误,而是在我开始在物理设备上录制时崩溃了,这给了我。在模拟器上一切都很好。
Terminating app due to uncaught exception 'com.apple.coreaudio.avfaudio', reason: '[[busArray objectAtIndexedSubscript:(NSUInteger)element] setFormat:format error:&nsErr]: returned false, error Error Domain=NSOSStatusErrorDomain Code=-10865 "(null)"'