2013-10-10 2 views
1

В приложении «Audio MIDI setup» вы можете настроить настройку громкоговорителей, будет ли она многоканальной (любая конфигурация от 2.0 до 7.1) или стерео (только 2.0).CoreAudio правильный способ настройки компоновки

Я пытаюсь реализовать правильную поддержку конфигурации макета в своем приложении, которая основана на проприетарном движке, который сам по себе не использует макет coreaudio, поэтому мне нужно реализовать отображение канала самостоятельно.

Чтобы получить конфигурацию Многоканальный Я использую

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

который работает прекрасно до тех пор, пока конфигурация выбрана в стерео (!!!! не многоканальным - стерео макет в нем, но стерео, как показано на изображении).

enter image description here

В этом случае kAudioDevicePropertyPreferredChannelLayout собственности по-прежнему направляя к многоканальной конфигурации и я не мог найти какое-либо другое свойство, что я мог бы использовать, чтобы определить, какую конфигурацию выбрана.

Может ли кто-нибудь помочь мне в этой ситуации?

ответ

0

Если вы имеете дело со стерео выходом, устройство вывода публикует свойство kAudioDevicePropertyPreferredChannelsForStereo, которое вы должны использовать для определения карты канала. Это соответствует выбору Stereo. Как вы обнаружили, свойство kAudioDevicePropertyPreferredChannelLayout относится к макету Multichannel и должно использоваться для не стерео/моно аудио.

+0

Yap это один простой. Но вопрос заключается в том, как определить, выбран ли стерео или многоканальный макет? Также используется сопоставление стереоканалов системой, и мне не нужно ничего делать, чтобы отображать каналы, все это делается с помощью sytem. –

+0

Я не считаю, что пользователь выбирает тот или иной активный, кнопки - это просто способ упрощения пользовательского интерфейса Apple. Устройство одновременно обладает обоими свойствами. – sbooth

+0

Хмммм. Это не кажется вероятным, так как после экспериментов с конфигурацией я обнаружил, что предпочтительный макет остается равным 5.1, если он выбран в многоканальном режиме, даже если выбрана стерео конфигурация. И особенно я удивлен, что отображение каналов производится системой в случае выбора стерео, а не программным обеспечением (или возможно, что все звуковые библиотеки, которые используются для аудиовыхода (используется во флэш-памяти и всех других многоплатформенных средах), реагируют правильно отобразить канал, но это выглядит довольно маловероятно). –

Смежные вопросы