Útmutató: XAudio2 inicializálása
Az XAudio2-t inicializálhatja a hanglejátszáshoz az XAudio2 motor egy példányának létrehozásával, majd egy mesterhang létrehozásával.
Először inicializált COM-t kell használnia. Ha C++/WinRThasznál, akkor ez meg van oldva. Ha nem biztos abban, hogy a környezete már inicializálta a COM-t, meghívhatja CoInitializeEx, amíg ellenőrzi a visszatérési értéket.
HRESULT hr = ::CoInitializeEx(nullptr, COINIT_MULTITHREADED); if (FAILED(hr)) return hr;
Az XAudio2 motor egy példányának létrehozásához hívja meg a XAudio2Create függvényt. Ez egy IXAudio2 felületre mutat, és érdemes ezt egy osztályadat-tagban tárolni. Ebben a kódrészletben egy C++/WinRT intelligens mutatót használunk, de szükség esetén használhat nyers mutatót.
winrt::com_ptr<IXAudio2> m_xAudio2{}; ... winrt::check_hresult(::XAudio2Create(m_xAudio2.put(), 0, XAUDIO2_DEFAULT_PROCESSOR));
Ezután az úgynevezett mesterhang létrehozásához hívja meg a IXAudio2::CreateMasteringVoice metódust. Ez mutatót ad egy IXAudio2MasteringVoice felülethez. A mastering voices beágyaz egy hangeszközt. Ez a végső cél minden hang számára, amely áthalad egy hanggráfon.
IXAudio2MasteringVoice* m_pXAudio2MasteringVoice{}; ... winrt::check_hresult(xAudio2->CreateMasteringVoice(&m_pXAudio2MasteringVoice));
Intelligens mutatók
A biztonság és a kényelem érdekében intelligens mutatót használhat az IXAudio2 interfészhez. A hangalapú felületek (például IXAudio2MasteringVoice) azonban nem rendelkeznek Release metódussal, így fordítási hiba jelenik meg, ha okosmutatót próbál használni ezekhez. Ezekben a kódrészletekben lehetőség szerint intelligens mutatót és szükség esetén nyers mutatót használunk.
Kapcsolódó témakörök
- Az XAudio2 használatának első lépései
- : Hangadatfájlok betöltése az XAudio2
- Hogyan lehet hangot lejátszani az XAudio2 segítségével