在“音频MIDI设置”应用程序中,您可以配置您的扬声器设置,它是多声道(从2.0到7.1的任何配置)或立体声(仅2.0)。
我正在尝试在我的应用程序中实现对布局配置的正确支持,该应用程序基于专有引擎,它本身不使用coreaudio布局,所以我需要自己实现通道映射。
要获得多渠道配置,我正在使用
AudioObjectPropertyAddress propertyAddress;
propertyAddress.mSelector = kAudioDevicePropertyPreferredChannelLayout;
propertyAddress.mScope = kAudioDevicePropertyScopeOutput;
propertyAddress.mElement = kAudioObjectPropertyElementMaster;
在配置被选择为立体声(!!!!不是多声道 - 其中的立体声布局,但是立体声如图所示)之前,这是完美无缺的。
在这种情况下,kAudioDevicePropertyPreferredChannelLayout属性仍然指向多通道配置,我找不到任何其他可用于确定选择配置的属性。
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
如果您正在处理立体声输出,则输出单元会发布一个属性kAudioDevicePropertyPreferredChannelsForStereo
,您应该使用该属性来确定通道映射。这对应于上面的 Stereo 选项。正如您所发现的,kAudioDevicePropertyPreferredChannelLayout
属性是指多声道布局,应该用于非立体声/单声道音频。