使用方法:初始化 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++ 樣板庫 (WRL) 的 ComPtr智慧型指標範本。
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 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應