Руководство: использование субмикшированной речи
В этом разделе показано, как настроить группы голосов для отправки выходных данных в один и тот же голос субмикса. Это позволяет одному изменению голоса субмикса повлиять на всю группу голосов.
Создайте голос субмикса , в который будут отправляться все голоса звуковых эффектов игры.
IXAudio2SubmixVoice * pSFXSubmixVoice; pXAudio2->CreateSubmixVoice(&pSFXSubmixVoice,1,44100,0,0,0,0);
Создайте структуру XAUDIO2_VOICE_SENDS , содержащую ссылку на голос субмикса.
XAUDIO2_SEND_DESCRIPTOR SFXSend = {0, pSFXSubmixVoice}; XAUDIO2_VOICE_SENDS SFXSendList = {1, &SFXSend};
Передайте структуру XAUDIO2_VOICE_SENDS новым исходным голосам по мере их создания.
IXAudio2SourceVoice* pSFXSourceVoice; if( FAILED(hr = pXaudio2->CreateSourceVoice( &pSFXSourceVoice, (WAVEFORMATEX*)&wfx, 0, XAUDIO2_DEFAULT_FREQ_RATIO, pCallback, pSFXSendList, NULL ) ) ) return hr;
Примените изменения ко всем голосам звуковых эффектов, изменив тембр субмикса.
В этом примере изменение громкости субмиксного голоса с помощью функции SetVolume фактически изменяет громкость всех голосов, которые в него выводят.
pSFXSubmixVoice->SetVolume(0.1);
Связанные темы