尝试使用 AudioKit 5 动态创建带有混音器的播放器,并将其附加到主混音器。我希望生成的链看起来像:
AudioPlayer -> Mixer(用于播放器) -> Mixer(用于输出) -> AudioEngine.output
我的示例存储库在这里:https://github.com/hoopes/AK5Test1
您可以在此处的主文件( https://github.com/hoopes/AK5Test1/blob/main/AK5Test1/AK5Test1App.swift )中看到有三个函数。
第一个作品,在创建 Controller 类时创建的 Mixer
上播放 mp3。
第二个作品,其中新创建的 AudioPlayer
直接挂接到 outputMixer
。
但是,第三个,我尝试设置上面的链,却没有,并且崩溃并出现“播放器在断开连接状态下启动”错误。我已将函数复制到此处:
/** Try to add a mixer with a player to the main mixer */
func doesNotWork() {
let p2 = AudioPlayer()
let localMixer = Mixer()
localMixer.addInput(p2)
outputMixer.addInput(localMixer)
playMp3(p: p2)
}
其中 playMp3
仅在 AudioPlayer
上播放示例 mp3。
我不确定我是如何滥用混音器的。在我的实际应用程序中,我有更长的混合器/助推器/等链,并遇到相同的错误,这导致我创建了简单的测试应用程序。
如果有人可以提供建议,我很乐意听到。非常感谢!
最佳答案
在你的情况下,你可以交换outputMixer.addInput(localMixer)和localMixer.addInput(p2)然后它就可以工作了
启动引擎后:使用音频链连接从输出开始向后工作。因此,您的问题是您将播放器连接到与输出断开连接的混音器。您需要首先将输出连接到混音器,然后将该混音器连接到播放器。
关于AudioKit 5 - 播放器在断开连接状态下启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64997868/