我使用 AudioKit 遇到此崩溃*** 由于未捕获的异常“com.apple.coreaudio.avfaudio”而终止应用程序,原因:“播放器在断开连接状态下启动”
这种情况发生在我按一个顺序创建并添加节点,但当我按另一种顺序添加它们时不会发生。这是所需的链:
[播放器]->[助推器1]->[混音器1]->[助推器2]->[混音器2]->[峰值限制器]->[输出]
当我按照这个顺序构建它时,它崩溃了:
let mixer2 = AKMixer()
let peakLimiter = AKPeakLimiter(mixer2)
AudioKit.output = peakLimiter
AudioKit.start()
let mixer1 = AKMixer()
let booster2 = AKBooster(mixer1)
mixer2.connect(input: booster2)
let booster1 = AKBooster(player)
mixer1.connect(input: booster1)
player.play()
但是当我按照这个顺序构建它时,它可以工作:
let booster1 = AKBooster(player)
let mixer1 = AKMixer()
mixer1.connect(input: booster1)
let booster2 = AKBooster(mixer1)
let mixer2 = AKMixer()
mixer2.connect(input: booster2)
let peakLimiter = AKPeakLimiter(mixer2)
AudioKit.output = peakLimiter
AudioKit.start()
player.play()
有什么想法吗?由于应用程序中的动态原因,第一个示例(崩溃)是它所需的创建顺序。
同样奇怪的是,如果我使用第一个创建顺序示例并省略第二个助推器,它就会起作用。 [播放器]->[助推器1]->[混音器1]->[混音器2]->[峰值限制器]->[输出]
let mixer2 = AKMixer()
let peakLimiter = AKPeakLimiter(mixer2)
AudioKit.output = peakLimiter
AudioKit.start()
let mixer1 = AKMixer()
mixer2.connect(input: mixer1)
let booster1 = AKBooster(player)
mixer1.connect(input: booster1)
player.play()
最佳答案
您可以尝试在播放
之前(但在所有连接
之后)移动输出
和开始
:
AudioKit.output = peakLimiter
AudioKit.start()
player.play()
关于ios - AudioKit "disconnected state"与链中节点的创建顺序相关的崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47849402/