Поделиться через


Как сгруппировать звуковые методы в набор операций

В этом разделе показано, как объединить методы XAudio2, чтобы они вошли в силу одновременно.

Группировать звуковые методы как набор операций

  1. Объявите глобальный счётчик набора операций.

    Счетчик для набора операций гарантирует, что каждый набор операций является уникальным.

    UINT32 OperationSetCounter = 0;
    
  2. Увеличьте глобальный счетчик.

    Каждый раз, когда вы отправляете новый набор операций , глобальный счетчик должен увеличиваться, чтобы гарантировать уникальность каждого набора.

    UINT32 OperationID = UINT32(InterlockedIncrement(LPLONG(&OperationSetCounter)));
    
  3. Группировать вызовы метода, устанавливая параметры набора операций .

  4. Установите в наборе операций параметры на текущее значение глобального счетчика.

    В этом случае четыре вызова IXAudio2SourceVoice::Start объединяются в один набор операций . Группирование вызовов приводит к тому, что все четыре звука начинаются точно в то же время.

    hr = pSFXSourceVoice1->Start( 0, OperationID );
    hr = pSFXSourceVoice2->Start( 0, OperationID );
    hr = pSFXSourceVoice3->Start( 0, OperationID );
    hr = pSFXSourceVoice4->Start( 0, OperationID );
    
  5. Запустите набор операций .

    После вызова всех методов в наборе запустите набор, вызвав IXAudio2::CommitChanges с текущим значением глобального счетчика.

    pXAudio2->CommitChanges(OperationID);
    

Наборы операций

XAudio2 Руководство по программированию

наборы операций XAudio2