如何:按操作集组合音频方法

本主题介绍如何将 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 操作集