Procédure : utiliser des voix prémixées
Cette rubrique vous montre comment définir des groupes de voix pour envoyer leur sortie à la même voix submixée. Cela permet une modification unique d’une voix submixée pour affecter un groupe entier de voix.
Créez une voix submixée à laquelle toutes les voix d’effet sonore du jeu seront envoyées.
IXAudio2SubmixVoice * pSFXSubmixVoice; pXAudio2->CreateSubmixVoice(&pSFXSubmixVoice,1,44100,0,0,0,0);
Créez une structure XAUDIO2_VOICE_SENDS qui contient une référence à la voix submixée.
XAUDIO2_SEND_DESCRIPTOR SFXSend = {0, pSFXSubmixVoice}; XAUDIO2_VOICE_SENDS SFXSendList = {1, &SFXSend};
Transmettez la structure XAUDIO2_VOICE_SENDS aux nouvelles voix sources au fur et à mesure qu’elles sont créées.
IXAudio2SourceVoice* pSFXSourceVoice; if( FAILED(hr = pXaudio2->CreateSourceVoice( &pSFXSourceVoice, (WAVEFORMATEX*)&wfx, 0, XAUDIO2_DEFAULT_FREQ_RATIO, pCallback, pSFXSendList, NULL ) ) ) return hr;
Appliquez des modifications à toutes les voix d’effet sonore en ajustant la voix submixée.
Dans cet exemple, la modification du volume de la voix submixée avec la fonction SetVolume modifie efficacement le volume de toutes les voix qui y sont générées.
pSFXSubmixVoice->SetVolume(0.1);
Rubriques connexes