So wird's gemacht: Verwenden von Submixstimmen

In diesem Thema erfahren Sie, wie Sie Stimmengruppen so festlegen können, dass ihre Ausgabe an dieselbe Submixstimme gesendet wird. Dadurch kann eine einzelne Änderung an einer Submixstimme eine ganze Gruppe von Stimmen beeinflussen.

  1. Erstellen Sie eine Submixstimme , an die alle Soundeffektstimme 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 Submixstimme enthält.

    XAUDIO2_SEND_DESCRIPTOR SFXSend = {0, pSFXSubmixVoice};
    XAUDIO2_VOICE_SENDS SFXSendList = {1, &SFXSend};
    
  3. Übergeben Sie die XAUDIO2_VOICE_SENDS-Struktur an neue Quellstimmdaten, 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 Soundeffektstimme an, indem Sie die Submixstimme anpassen.

    In diesem Beispiel ändert das Ändern der Lautstärke der Submixstimme 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