Como: Agrupar métodos de áudio como um conjunto de operações

Este tópico mostra como você pode agrupar métodos XAudio2 para que eles entrem em vigor ao mesmo tempo.

Para agrupar métodos de áudio como um conjunto de operações

  1. Declare um contador de conjunto de operações global.

    O contador do conjunto de operações garante que cada conjunto de operações seja exclusivo.

    UINT32 OperationSetCounter = 0;
    
  2. Incremente o contador global.

    Cada vez que você envia um novo conjunto de operações, o contador global deve incrementar para garantir que cada conjunto seja exclusivo.

    UINT32 OperationID = UINT32(InterlockedIncrement(LPLONG(&OperationSetCounter)));
    
  3. Agrupe as chamadas de método definindo seus parâmetros de conjunto de operações .

  4. Defina os parâmetros do conjunto de operações como o valor atual do contador global.

    Nesse caso, quatro chamadas para IXAudio2SourceVoice::Start são agrupadas como um conjunto de operações. Agrupar as chamadas faz com que todos os quatro sons comecem exatamente ao mesmo tempo.

    hr = pSFXSourceVoice1->Start( 0, OperationID );
    hr = pSFXSourceVoice2->Start( 0, OperationID );
    hr = pSFXSourceVoice3->Start( 0, OperationID );
    hr = pSFXSourceVoice4->Start( 0, OperationID );
    
  5. Inicie o conjunto de operações.

    Depois de chamar todos os métodos no conjunto, inicie o conjunto chamando IXAudio2::CommitChanges com o valor atual do contador global.

    pXAudio2->CommitChanges(OperationID);
    

Conjuntos de operações

Guia de Programação em XAudio2

Conjuntos de operações XAudio2