1

在“音频 MIDI 设置”应用程序中,您可以配置您的扬声器设置,它是多声道(从 2.0 到 7.1 的任何配置)还是立体声(仅 2.0)。

我正在尝试在我的应用程序中实现对布局配置的正确支持,该应用程序基于专有引擎,该引擎本身不使用 coreaudio 布局,因此我需要自己实现通道映射。

要获得我正在使用的多通道配置

AudioObjectPropertyAddress propertyAddress;
propertyAddress.mSelector = kAudioDevicePropertyPreferredChannelLayout;
propertyAddress.mScope = kAudioDevicePropertyScopeOutput;
propertyAddress.mElement = kAudioObjectPropertyElementMaster;

直到配置被选择为立体声(!!!! 不是多声道-其中的立体声布局,而是如图所示的立体声),它才能完美运行。

在此处输入图像描述

在这种情况下,kAudioDevicePropertyPreferredChannelLayout 属性仍然指向多声道配置,我找不到任何其他可以用来确定选择哪个配置的属性。

有人可以帮我解决这种情况吗?

4

1 回答 1

0

如果您正在处理立体声输出,则输出单元会发布一个属性kAudioDevicePropertyPreferredChannelsForStereo,您应该使用该属性来确定通道映射。这对应于上面的立体声选择。正如您所发现的,该kAudioDevicePropertyPreferredChannelLayout属性指的是多声道布局,应该用于非立体声/单声道音频。

于 2013-10-11T00:18:12.797 回答