代码之家  ›  专栏  ›  技术社区  ›  whistler

可以使用MusicSequence将MusicLayer连接到AVAudioUnitSampler吗?

  •  5
  • whistler  · 技术社区  · 7 年前

    我正在使用Audiokit来满足iOS应用程序的音频需求,我需要使用音序器以编程方式控制音符序列,我想用它驱动采样器。Audiokit似乎设计为在内部使用MIDI,但我想避免这种情况,直接从音序器到采样器,因为使用MIDI似乎会使所有内部连接出现在其他应用程序的虚拟MIDI列表中。

    我的问题是:是否可以使用 MusicPlayer , MusicSequence MusicTrack (来自AudioToolbox)到 AVAudioUnitSampler (来自AVFoundation)?

    另一种选择显然是使用 AudioComponentDescription 建立一个 AUGraph ,但我希望尽可能使用Audiokit助手。

    编辑:关键步骤似乎是使用 MusicTrackSetDestNode 这需要一个 AUNode . AvaudioUnits采样器 是一个 AVAudioNode 这就是 auAudioUnit 属性,类型 AUAudioUnit . 基本API,如 AUGraphNodeInfo 从音频节点为您提供音频单元。如何从音频单元获取音频节点?

    1 回复  |  直到 7 年前
        1
  •  7
  •   Gene De Lisa    7 年前

    您可以轻松地将AVAudioSequencer与AVAudioUnitSampler结合使用。这适用于许多情况。

    它不适用于“动态”构建的MIDI序列,因为目前除了AudioToolbox之外,没有API来创建序列。向雷达询问此事。(他们厌倦了听到我关于这件事的消息)。否则,一种笨拙的方法是创建一个MusicSequence,将其转换为数据实例,然后将其交给AVAudioSequencer。