Freigeben über


So wird's gemacht: Gruppieren von Audiomethoden als Vorgangssatz

In diesem Thema erfahren Sie, wie Sie XAudio2-Methoden gruppieren können, damit sie gleichzeitig wirksam werden.

So gruppieren Sie Audiomethoden als Vorgangssatz

  1. Deklarieren Sie einen globalen Vorgangssatzzähler.

    Der Vorgangssatzzähler stellt sicher, dass jeder Vorgangssatz eindeutig ist.

    UINT32 OperationSetCounter = 0;
    
  2. Erhöhen Sie den globalen Zähler.

    Jedes Mal, wenn Sie einen neuen Vorgangssatz übermitteln, sollte der globale Leistungsindikator erhöht werden, um sicherzustellen, dass jeder Satz eindeutig ist.

    UINT32 OperationID = UINT32(InterlockedIncrement(LPLONG(&OperationSetCounter)));
    
  3. Gruppieren Sie die Methodenaufrufe, indem Sie deren Parameter für den Vorgangssatz festlegen.

  4. Legen Sie die Parameter für den Vorgangssatz auf den aktuellen Wert des globalen Indikators fest.

    In diesem Fall werden vier Aufrufe von IXAudio2SourceVoice::Start als ein Vorgangssatz gruppiert. Das Gruppieren der Aufrufe bewirkt, dass alle vier Sounds genau zur gleichen Zeit beginnen.

    hr = pSFXSourceVoice1->Start( 0, OperationID );
    hr = pSFXSourceVoice2->Start( 0, OperationID );
    hr = pSFXSourceVoice3->Start( 0, OperationID );
    hr = pSFXSourceVoice4->Start( 0, OperationID );
    
  5. Starten Sie den Vorgangssatz.

    Nachdem Sie alle Methoden im Satz aufgerufen haben, starten Sie den Satz, indem Sie IXAudio2::CommitChanges mit dem aktuellen Wert des globalen Leistungsindikators aufrufen.

    pXAudio2->CommitChanges(OperationID);
    

Vorgangssätze

XAudio2-Programmieranleitung

XAudio2-Vorgangssätze