Procedura: Usare voci di missaggio secondario
Questo argomento illustra come impostare gruppi di voci per inviare il loro output alla stessa voce submix. Ciò consente una singola modifica a una voce submix per influire su un intero gruppo di voci.
Creare una voce submix a cui verranno inviate tutte le voci dell'effetto audio del gioco.
IXAudio2SubmixVoice * pSFXSubmixVoice; pXAudio2->CreateSubmixVoice(&pSFXSubmixVoice,1,44100,0,0,0,0);
Creare una struttura XAUDIO2_VOICE_SENDS contenente un riferimento alla voce submix.
XAUDIO2_SEND_DESCRIPTOR SFXSend = {0, pSFXSubmixVoice}; XAUDIO2_VOICE_SENDS SFXSendList = {1, &SFXSend};
Passare la struttura XAUDIO2_VOICE_SENDS a nuove voci di origine durante la creazione.
IXAudio2SourceVoice* pSFXSourceVoice; if( FAILED(hr = pXaudio2->CreateSourceVoice( &pSFXSourceVoice, (WAVEFORMATEX*)&wfx, 0, XAUDIO2_DEFAULT_FREQ_RATIO, pCallback, pSFXSendList, NULL ) ) ) return hr;
Applicare le modifiche a tutte le voci degli effetti audio modificando la voce submix.
In questo esempio, la modifica del volume della voce submix con la funzione SetVolume modifica in modo efficace il volume di tutte le voci che generano l'output.
pSFXSubmixVoice->SetVolume(0.1);
Argomenti correlati