AudioKit无法录制麦克风

时间:2019-08-01 01:59:32

标签: ios swift audio avfoundation audiokit

我正在使用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)"'

0 个答案:

没有答案