So wird's gemacht: Verwenden von Submixstimmen

In diesem Thema erfahren Sie, wie Sie Gruppen von Stimmen festlegen können, um ihre Ausgabe an dieselbe Submixstimme zu senden. Dies ermöglicht eine einzelne Änderung einer Submixstimme, um eine ganze Gruppe von Stimmen zu beeinflussen.

  1. Erstellen Sie eine Submixstimme, an die alle Soundeffektstimmen des Spiels gesendet werden.

    IXAudio2SubmixVoice * pSFXSubmixVoice;
    pXAudio2->CreateSubmixVoice(&pSFXSubmixVoice,1,44100,0,0,0,0);
    
  2. Erstellen Sie eine XAUDIO2 _ VOICE _ SENDS-Struktur, die einen Verweis auf die Submix-Stimme enthält.

    XAUDIO2_SEND_DESCRIPTOR SFXSend = {0, pSFXSubmixVoice};
    XAUDIO2_VOICE_SENDS SFXSendList = {1, &SFXSend};
    
  3. Übergeben Sie die XAUDIO2 _ VOICE _ SENDS-Struktur an neue Quellstimmen, während sie erstellt werden.

    IXAudio2SourceVoice* pSFXSourceVoice;
    if( FAILED(hr = pXaudio2->CreateSourceVoice( &pSFXSourceVoice, (WAVEFORMATEX*)&wfx,
        0, XAUDIO2_DEFAULT_FREQ_RATIO, pCallback, pSFXSendList, NULL ) ) )
        return hr;
    
  4. Wenden Sie Änderungen auf alle Soundeffektstimmen an, indem Sie die Submixstimme anpassen.

    In diesem Beispiel ändert sich durch ändern der Lautstärke der Submix-Stimme mit der SetVolume-Funktion effektiv die Lautstärke aller Stimmen, die an sie ausgegeben werden.

    pSFXSubmixVoice->SetVolume(0.1);
    

Stimmen

XAudio2-Programmieranleitung

So wird's gemacht: Erstellen eines grundlegenden Audioverarbeitungsdiagramms