Требуется несколько экземпляров XAudio2 для AUDIO_STREAM_CATEGORY?

В более новых XAudio2 API для Windows 8 и 10 AUDIO_STREAM_CATEGORY передается IXAudio2::CreateMasteringVoice.

Далее в документации рассказывается, как их следует использовать для различных типов аудио. Однако для IXAudio2 разрешен только один мастер-голос. Для этого требуются полностью отдельные экземпляры IXAudio2 вместе со всеми связанными интерфейсами, или можно каким-то образом указать категории в другом месте аудиографа?

Игры должны классифицировать свои музыкальные потоки как AudioCategory_GameMedia, чтобы музыка автоматически отключалась, если другое приложение воспроизводит музыку в фоновом режиме. Музыкальные или видеоприложения должны классифицировать свои потоки как AudioCategory_Media или AudioCategory_Movie, чтобы они имели приоритет над потоками AudioCategory_GameMedia. Игровой звук для внутриигровых видеороликов или кат-сцен, когда звук предварительно микширован или по творческим причинам должен иметь приоритет над фоновым звуком, также должен быть отнесен к категории Мультимедиа или Фильм.


person Fire Lancer    schedule 18.07.2018    source источник


Ответы (1)


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

Как правило, вы можете обойтись только одним и всегда использовать AudioCategory_GameMedia.

Я знаю, что этот дизайн немного громоздкий, но категория установлена ​​​​на выходном голосе WASAPI, куда XAudio2 отправляет свой мастеринговый голосовой материал. Любой другой дизайн потребовал бы аннотирования данных категории во внутреннем аудиографе XAudio, что было бы довольно сложно реализовать за небольшую стоимость. Вместо этого мы просто позволяем приложениям иметь более одного активного аудиографа одновременно, каждый со своим собственным мастеринговым голосом и, следовательно, со своей собственной категорией.

Как вы решите поддерживать функцию категории аудио WASAPI, зависит от вас, и, конечно, наилучшее взаимодействие с пользователем зависит от того, что именно на самом деле делает ваше приложение.

person Chuck Walbourn    schedule 18.07.2018