Ios &引用;AudioKit v5主版本“;与麦克风音高抽头相撞

Ios &引用;AudioKit v5主版本“;与麦克风音高抽头相撞,ios,swift,audiokit,Ios,Swift,Audiokit,我使用“AudioKit v5 main”来实现录制功能。 录音功能工作正常,但当我试图点击麦克风的输入时,它崩溃了 代码是: class ViewController: UIViewController { let engine = AudioEngine() var silence: Fader! var boostMic: Fader! var tracker: PitchTap! var recorder: NodeRecorder! v

我使用“AudioKit v5 main”来实现录制功能。 录音功能工作正常,但当我试图点击麦克风的输入时,它崩溃了

代码是:

class ViewController: UIViewController {

    let engine = AudioEngine()
    var silence: Fader!
    var boostMic: Fader!
    var tracker: PitchTap!
    var recorder: NodeRecorder!
    var player = AudioPlayer()
    var mixer = Mixer()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        guard let mic = engine.input else {
            debugPrint("error")
            return
        }
        boostMic = Fader(mic, gain: 5)
        
        tracker = PitchTap(boostMic, handler: { (pitch, amp) in
            DispatchQueue.main.async {
                debugPrint("amp: \(amp.first!.description)")
            }
        })
        
        do {
            recorder = try NodeRecorder(node: boostMic)
        } catch {
            debugPrint(error.localizedDescription)
        }
        
        silence = Fader(boostMic, gain: 0)
        mixer.addInput(silence)
        mixer.addInput(player)
        engine.output = mixer
        
        Settings.audioInputEnabled = true
        do {
            try engine.start()
            tracker.start()
            NodeRecorder.removeTempFiles()
            try recorder.record()
        } catch {
            debugPrint(error.localizedDescription)
        }
    }
}
崩溃期间输出的错误有:

[avae]            AVAEInternal.h:76    required condition is false: [AVAEGraphNode.mm:817:CreateRecordingTap: (nullptr == Tap())]
*** Terminating app due to uncaught exception 'com.apple.coreaudio.avfaudio', reason: 'required condition is false: nullptr == Tap()'
开发环境如下:

macOS 10.15.7

代码12.2(12B45b)

AudioKit v5主分支

使用实际的iPhoneX进行测试


有没有办法避免崩溃?

我通过修改AudioKit框架解决了这个问题。

我通过修改AudioKit框架解决了这个问题