Вывод OpenAL на несколько устройств (Linux) - PullRequest
3 голосов
/ 28 июля 2010

Я занимаюсь разработкой приложения для Linux на компьютере с двумя звуковыми картами, и я хочу использовать оба сразу в OpenAL, каждый в своем собственном контексте.Когда я вызываю расширение перечисления OpenAL, alcGetString (NULL, ALC_DEVICE_SPECIFIER), чтобы получить список возможных устройств вывода, список состоит только из «Программного обеспечения ALSA» и «Программного обеспечения OSS».Я знаю, что это всего лишь представление OpenAL о программных устройствах, поэтому, когда я выбираю одно из них, OpenAL просто выводит звук на устройство по умолчанию, настроенное в ALSA или OSS.Я даже не уверен, возможно ли это, но есть ли способ направить аудиовыход из контекста OpenAL на конкретное устройство?Таким образом, я мог бы создать два контекста, по одному для каждого устройства, и отправить отдельное аудио каждому.

Спасибо, -Al

1 Ответ

6 голосов
/ 29 июля 2010

Сегодня я провел тестирование и нашел ответ. По-видимому, вам нужно вызвать alcGetString с аргументом ALC_ALL_DEVICES_SPECIFIER, чтобы получить полный список. Это достаточно простое изменение, но документация OpenAL по этой функциональности в лучшем случае облачна, а в худшем - вводит в заблуждение. См. Раздел 9.5 спецификации OpenAL 1.1 и подраздел «Расширения Creative Labs для OpenAL» -> «Перечислить все расширения» -> «Извлечение имен устройств» Руководства программиста OpenAL, чтобы понять, что я имею в виду.

OpenAL документация: http://connect.creativelabs.com/openal/Documentation/Forms/AllItems.aspx

...