我在哪里可以获得com.apple.coreaudio.avfaudio
错误代码的信息,例如:
由于未捕获的异常终止应用' com.apple.coreaudio.avfaudio',原因:'错误-50'
将PCM缓冲区写入AVAudioFile
时总是出错。缓冲区来自AVAudioEngine
的输出节点。
错误:
*因未捕获的异常终止应用' com.apple.coreaudio.avfaudio',原因:'错误-50' * 第一次抛出调用堆栈: (0x18eb46fe0 0x18d5a8538 0x18eb46eb4 0x1a8d051cc 0x1a8d731dc 0x1000d45e0 0x1000d4820 0x1a8d14654 0x1a8d146c0 0x1a8d8c26c 0x1a8d8c1fc 0x100ae5a10 0x100af1a84 0x100b001f8 0x100ae7a60 0x100af3128 0x100ae9634 0x100af5630 0x100af6f48 0x18dc0968c 0x18dc0959c 0x18dc06cb4) libc ++ abi.dylib:以NSException类型的未捕获异常终止
你能帮帮我吗?
答案 0 :(得分:1)
https://www.osstatus.com/search/results?platform=all&framework=all&search=-50
我刚才找到了链接。 你可以看到苹果编码的所有错误代码
答案 1 :(得分:0)
我没有找到错误的确切描述,但它似乎是一个通用的“ivalid parameters”例外。
在我的情况下,也很可能在你的情况下,问题是缓冲区与 AVAudioFile 实例的格式不匹配。
let settings: [String: Any] = [
AVFormatIDKey: kAudioFormatLinearPCM,
AVSampleRateKey: 44 * 1000,
AVNumberOfChannelsKey: 2
]
do {
try avFile = AVAudioFile(forWriting: URLFor(filename: "test.caf"), settings: settings)
avEngine.inputNode?.installTap(onBus: 0, bufferSize: 1024, format: avEngine.mainMixerNode.outputFormat(forBus: 0)) {
buffer, time in
do {
try self.avFile?.write(from: buffer)
}
catch {
// TODO
}
}
try avEngine.start()
} catch {
// TODO
}
在下面的示例中,当我以PCM,2channel 44khz以外的任何格式创建AVAudioFile时,我收到“ - 50”错误。
答案 2 :(得分:0)
我遇到了类似的问题,我遇到了com.apple.coreaudio.avfaudio -50错误,采样率不匹配。我只需要设置AVAudioFile来匹配mainMixerNode outputFormat。
let format = engine.mainMixerNode.outputFormat(forBus: 0)
self.musicTrackFinalOutputFile = try AVAudioFile(forWriting: temporaryFileURL, settings: [
AVFormatIDKey: NSNumber(value:kAudioFormatMPEG4AAC),
AVEncoderAudioQualityKey : AVAudioQuality.high.rawValue,
AVEncoderBitRateKey : 320000,
AVNumberOfChannelsKey: format.channelCount,
AVSampleRateKey : format.sampleRate
])