如何:按操作集组合音频方法
本主题介绍如何将 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);
相关主题