Вы создаете один IXAudio2SourceVoice
для каждого «воспроизводимого, активного» звука, который вы хотите одновременно.Как правило, игры создают несколько сотен исходных голосов для управления - кроме того, звуковой микс, как правило, слишком грязный, чтобы его можно было услышать.
В игровых звуковых движках есть смесь «одноразовых» голосов, которые просто воспроизводятся.- требовать до тех пор, пока они не завершат - в этот момент это освобождает этот исходный голос для использования другим одноразовым звуком - голосами «ambient» или «music», которыми манипулируют во время воспроизведения, и звуковыми позиционированными звуками 3D, которые должныобновлять каждый кадр рендеринга для отслеживания объекта рендеринга 3D, из которого они излучаются.
Если вы отправите одни и те же аудиоданные в два разных экземпляра IXAudio2SourceVoice
, то вы услышите, как они воспроизводятся дважды, смешанные вместе вв режиме реального времени.Обычно вы не запускаете их в один и тот же момент, потому что в результате получается только более громкая версия одного звука.Обычно они запускаются в разное время, поэтому вы получаете воспроизведение с перекрытием.
См. Руководство по программированию XAudio2 , GitHub и Набор инструментов DirectX для аудио .