如何:初始化 XAudio2

XAudio2 通过创建 XAudio2 引擎的实例和创建主语音来初始化音频播放。

初始化 XAudio2

  1. 请确保已初始化 COM。 对于 Windows 应用商店应用,这是初始化Windows 运行时的一部分。 否则,请使用 CoInitializeEx

    HRESULT hr;
    hr = CoInitializeEx( nullptr, COINIT_MULTITHREADED );
    if (FAILED(hr))
        return hr;
    
  2. 使用 XAudio2Create 函数创建 XAudio2 引擎的实例。

    IXAudio2* pXAudio2 = nullptr;
    if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) )
        return hr;
    
  3. 使用 CreateMasteringVoice 方法创建主语音。

    主语音封装音频设备。 它是通过音频图传递的所有音频的最终目标。

    IXAudio2MasteringVoice* pMasterVoice = nullptr;
    if ( FAILED(hr = pXAudio2->CreateMasteringVoice( &pMasterVoice ) ) )
        return hr;
    

Windows 应用商店应用说明

建议使用 智能指针 以异常安全方式管理 XAUDIO2 对象的生存期。 对于 Windows 应用商店应用,可以使用 Windows 运行时 C++ 模板库中的 ComPtr 智能指针模板 (WRL) 。

Microsoft::WRL::ComPtr<IXAudio2> XAudio2;
HRESULT hr;
if ( FAILED(hr = XAudio2Create( &XAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) )
    throw Platform::Exception::CreateException(hr);

IXAudio2MasteringVoice* pMasterVoice = nullptr;
if ( FAILED(hr = pXAudio2->CreateMasteringVoice( &pMasterVoice ) ) )
    return hr;

注意

在释放 IXAudio2 对象之前,请确保已完全释放所有 XAUDIO2 子对象。

 

XAudio2 入门

如何:在 XAudio2 中加载音频数据文件

如何:使用 XAudio2 播放声音