Como: Usar vozes de submixagem
Este tópico mostra como você pode definir grupos de vozes para enviar sua saída para a mesma voz de submixagem. Isso permite que uma única alteração em uma voz de submixagem afete um grupo inteiro de vozes.
Crie uma voz de submixagem para a qual todas as vozes de efeito sonoro do jogo serão enviadas.
IXAudio2SubmixVoice * pSFXSubmixVoice; pXAudio2->CreateSubmixVoice(&pSFXSubmixVoice,1,44100,0,0,0,0);
Crie uma estrutura XAUDIO2_VOICE_SENDS que contenha uma referência à voz do submixagem.
XAUDIO2_SEND_DESCRIPTOR SFXSend = {0, pSFXSubmixVoice}; XAUDIO2_VOICE_SENDS SFXSendList = {1, &SFXSend};
Passe a estrutura XAUDIO2_VOICE_SENDS para novas vozes de origem conforme elas são criadas.
IXAudio2SourceVoice* pSFXSourceVoice; if( FAILED(hr = pXaudio2->CreateSourceVoice( &pSFXSourceVoice, (WAVEFORMATEX*)&wfx, 0, XAUDIO2_DEFAULT_FREQ_RATIO, pCallback, pSFXSendList, NULL ) ) ) return hr;
Aplique alterações a todas as vozes de efeito sonoro ajustando a voz de submixagem.
Neste exemplo, alterar o volume da voz de submixagem com a função SetVolume altera efetivamente o volume de todas as vozes que são geradas para ela.
pSFXSubmixVoice->SetVolume(0.1);
Tópicos relacionados