我已经指定并实例化了两个音频单元:一个多声道混音器单元和一个 AudioFilePlayer 子类型的生成器。
我原以为我需要设置 filePlayer 输出的 ASBD 以匹配我为混音器输入设置的 ASBD。但是,当我尝试设置 filePlayer 的输出时,出现 kAudioUnitErr_FormatNotSupported (-10868) 错误。
这是我在混音器输入上设置的流格式(成功),我也在尝试在 filePlayer 上设置(它是从 Apple 的混音器主机示例项目复制的单流格式):
Sample Rate: 44100
Format ID: lpcm
Format Flags: C
Bytes per Packet: 2
Frames per Packet: 1
Bytes per Frame: 2
Channels per Frame: 1
Bits per Channel: 16
在对此进行故障排除的过程中,我查询了 filePlayer AU 的“本机”设置格式。这是返回的内容:
Sample Rate: 44100
Format ID: lpcm
Format Flags: 29
Bytes per Packet: 4
Frames per Packet: 1
Bytes per Frame: 4
Channels per Frame: 2
Bits per Channel: 32
我找到的所有示例代码都将 filePlayer 单元的输出发送到效果单元,并设置 filePlayer 的输出以匹配为效果单元设置的 ASBD。鉴于我没有效果单元,似乎将 filePlayer 的输出设置为混音器输入的 ASBD 将是正确且必需的事情。