如何:初始化 XAudio2
XAudio2 通过创建 XAudio2 引擎的实例和创建主语音来初始化音频播放。
初始化 XAudio2
请确保已初始化 COM。 对于 Windows 应用商店应用,这是初始化Windows 运行时的一部分。 否则,请使用 CoInitializeEx。
HRESULT hr; hr = CoInitializeEx( nullptr, COINIT_MULTITHREADED ); if (FAILED(hr)) return hr;
使用 XAudio2Create 函数创建 XAudio2 引擎的实例。
IXAudio2* pXAudio2 = nullptr; if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) ) return hr;
使用 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 子对象。
相关主题
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈