在AudioKit中连接/断开音频硬件可能会导致死锁。这是因为AudioKit中的音频引擎使用了不同的线程。为了避免死锁,需要在主线程上执行所有的连接/断开操作。下面是解决方法的代码示例:
func connectAudioHardware(){
DispatchQueue.main.async {
try? AudioKit.start()
}
}
func disconnectAudioHardware(){
DispatchQueue.main.async {
AudioKit.stop()
}
}
在连接/断开操作中使用主线程可以避免死锁问题。