WinRT - рендеринг аудио на разные устройства

Я работаю над проектом WinRT, в котором я одновременно воспроизводю несколько видеофайлов. У меня есть 3 аудиоустройства, подключенных к машине, которые будут использоваться для рендеринга аудио из видеофайлов, которые воспроизводятся. Максимальное количество видео, которое можно воспроизвести одновременно, равно 3. Следовательно, каждое аудиоустройство будет использоваться для воспроизведения аудио из соответствующего видеофайла. т. е. аудиоустройство 1 будет воспроизводить видео 1 и т. д. Это требование у меня есть.

До сих пор я сталкивался с двумя подходами. Во-первых, мы используем Dolby или любой другой API для направления звука на соответствующее устройство. т. е. левый канал отображается на устройстве 1, середина / центр - на устройстве 2, а справа - на устройство 3. Я пробовал пример приложения Dolby Audio для Windows 10. Они создали канал во встроенном видео, а не в коде. Я не смог найти документацию по Windows 10 Dolby API. Таким образом, для этого подхода, я могу воспроизвести аудио в форме канала для определенного аудио устройства? И я не хочу объединять аудио в любом случае.

Во-вторых, мы используем 3 звуковые карты и подключаем аудиоустройство к каждой. Мы выбираем устройство, на котором хотим воспроизводить аудио, предоставляя идентификатор устройства. Я попробовал этот подход с XAudio2, вызвав метод createMasteringVoice() с идентификатором устройства, который я хочу. Это сработало для одного аудиофайла, однако я хочу воспроизвести аудио нескольких воспроизводимых видео.

Оба подхода еще не решили основного требования. Итак, учитывая сценарий, каков наилучший подход для выполнения требования?

1 ответ

Решение

Я бы сказал, что вы можете пойти с XAudio2 как вы упомянули во втором подходе. Так как вы можете пройти deviceId в createMasteringVoice()Вы можете создать несколько экземпляров UniversalAudioPlayer и передать разные идентификаторы каждому. Таким образом, несколько звуков могут быть воспроизведены одновременно. Взгляните на определение функций и дополнения сообщества здесь.

Другие вопросы по тегам