Руководство: группировка звуковых методов как набора операций
В этом разделе показано, как сгруппировать методы XAudio2, чтобы они вступают в силу одновременно.
Группирование звуковых методов в виде набора операций
Объявите счетчик набора глобальных операций.
Счетчик набора операций гарантирует, что каждый набор операций уникален.
UINT32 OperationSetCounter = 0;
Увеличьте глобальный счетчик.
Каждый раз при отправке нового набора операций глобальный счетчик должен увеличиваться, чтобы убедиться, что каждый набор уникален.
UINT32 OperationID = UINT32(InterlockedIncrement(LPLONG(&OperationSetCounter)));
Группирование вызовов методов путем установки параметров набора операций .
Задайте для параметров набора операций текущее значение глобального счетчика.
В этом случае четыре вызова IXAudio2SourceVoice::Start группируются как один набор операций. Группирование вызовов приводит к тому, что все четыре звука начинаются точно в одно и то же время.
hr = pSFXSourceVoice1->Start( 0, OperationID ); hr = pSFXSourceVoice2->Start( 0, OperationID ); hr = pSFXSourceVoice3->Start( 0, OperationID ); hr = pSFXSourceVoice4->Start( 0, OperationID );
Запустите набор операций.
После вызова всех методов в наборе запустите набор, вызвав IXAudio2::CommitChanges с текущим значением глобального счетчика.
pXAudio2->CommitChanges(OperationID);
Связанные темы