AudioKit 5 - 播放器在断开连接状态下启动

标签 audiokit

尝试使用 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/

相关文章:

ios - AudioKit - 使用音序器在特定位置播放声音文件

ios - 没有名为 AKNode/AKToggleable 的类型或协议(protocol)

audiokit - 选择采样器

swift - 是否可以使用 Swift 的 AudioKit API 计算 MFCC 向量?

ios - 如何在音频单元扩展(实时进程)中为音频文件播放分配内存?

swift - 在 AKNodeOutputPlot (AudioKit) 上选择波形

ios - AudioKit 中 AKFrequencyTracker 和 AKMicrophoneTracker 的区别?

ios - 播放音乐时录制语音 - 过滤扬声器输入 (iOS)

ios - AudioKit:从 Podfile 的开发分支中拉取

ios - 如何将音频效果应用于文件并写入文件系统 - iOS