核心音频ExtAudioFile使用客户端通道布局

时间:2014-05-18 18:53:13

标签: macos audio core-audio extaudiofile

我正在尝试使用ExtAudioFile's自动频道布局映射,但它似乎无法按预期工作。

这就是我的所作所为:

  • 我用ExtAudioFileOpenURL()

  • 打开一个6通道WAVE文件
  • 将客户端数据格式属性(kExtAudioFileProperty_ClientDataFormat)设置为6声道PCM音频单元Canonical

  • 出于好奇,请阅读文件的频道布局属性(kExtAudioFileProperty_FileChannelLayout) 生成的AudioChannelLayout结构具有正确的kAudioChannelLayoutTag_MPEG_5_1_A(文件为L-R-C-LFE-LS-RS)

  • 设置客户端通道布局属性(kExtAudioFileProperty_ClientChannelLayout) 现在,我使用稍微不同的kAudioChannelLayoutTag_MPEG_5_1_C,即L-C-R-LS-RS-LFE,这是我想在音频图中使用的

  • 然后,使用ExtAudioFileRead()将文件读入AudioBufferList

  • 缓冲区列表由音频图表播放:预定声音播放器 - >矩阵混频器(将5.1信号下变频为立体声) - >默认输出

一切正常,但频道映射没有。矩阵混合器仍然接收L-R-C-LFE-LS-RS流。

我查看了kExtAudioFileProperty_ClientChannelLayout的文档:

  

此属性的值指定缓冲区的通道布局   您传递给AudioBufferListExtAudioFileRead的{​​{1}}列表   ExtAudioFileWrite功能。这种布局可能与   文件的通道布局,在这种情况下是扩展音频文件对象的   底层音频转换器执行重映射。这个属性必须是   设置thekExtAudioFileProperty_ClientDataFormat属性后设置,   并且两个布局中的通道数必须匹配。

我觉得我做对了,但我一定错过了什么......有没有人知道怎么做这个工作?

0 个答案:

没有答案