So wird's gemacht: Gruppieren von Audiomethoden als Vorgangssatz

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

So gruppen 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. Inkrementiert den globalen Zähler.

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

    UINT32 OperationID = UINT32(InterlockedIncrement(LPLONG(&OperationSetCounter)));
    
  3. Gruppieren Sie die Methodenaufrufe, indem Sie ihre Vorgangssatzparameter festlegen.

  4. Legen Sie die Parameter für den Vorgangssatz auf den aktuellen Wert des globalen Leistungsindikators 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 in der Menge aufruft, starten Sie den Satz, indem Sie IXAudio2::CommitChanges mit dem aktuellen Wert des globalen Zählers aufrufen.

    pXAudio2->CommitChanges(OperationID);
    

Vorgangssätze

XAudio2-Programmieranleitung

XAudio2-Vorgangssätze