Почему я получаю EXC_BREAKPOINT, пишущий AVAudioFile после использования AVAudioConverter на iOS?

Я пытаюсь записать голос с микрофона с помощью AVAudioEngine, выполнить некоторые изменения формата с помощью AVAudioConverter и сохранить буфер результатов в AVAudiofile следующим образом

func startRecording() {
    let format = audioEngine.inputNode.inputFormat(forBus: 0)
    let targetFormat = AVAudioFormat(commonFormat: AVAudioCommonFormat.pcmFormatInt16, sampleRate: 8000, channels: 1, interleaved: false)
    let settings = targetFormat!.settings
    do{
        let audioFile = try AVAudioFile(forWriting: audioFilename, settings:settings)

        audioEngine.inputNode.installTap(onBus: 0, bufferSize: 1024, format: format, block: { (buffer: AVAudioPCMBuffer, time:AVAudioTime) -> Void in
            print("\(buffer.frameLength)")
            do {

                let converter = AVAudioConverter.init(from: format, to: targetFormat!)
                let newbuffer = AVAudioPCMBuffer(pcmFormat: targetFormat!,
                                                 frameCapacity: buffer.frameCapacity)
                let inputBlock : AVAudioConverterInputBlock = { (inNumPackets, outStatus) -> AVAudioBuffer? in
                    outStatus.pointee = AVAudioConverterInputStatus.haveData
                    let audioBuffer : AVAudioBuffer = buffer
                    return audioBuffer
                }
                var error : NSError?
                converter?.convert(to: newbuffer!, error: &error, withInputFrom: inputBlock)

                try audioFile.write(from: newbuffer!)
            } catch let error as NSError {
                NSLog("Error writing %@", error.localizedDescription)
            }


        })
        self.audioEngine.prepare()
        startAudioEngine()
    }catch{

    }
}

Когда я выполняю код, я получаю поток 9: EXC_BREAKPOINT (код =1, субкод =0x187442dcc) в строке

try audioFile.write(from: newbuffer!)

Есть предположения, почему это происходит? Я довольно новичок в разработке для iOS, и меня это не устраивает.

заранее спасибо

0 ответов

Другие вопросы по тегам