Útmutató: Motorvisszahívások használata
A motoresemények XAudio2 ügyfélkódját a IXAudio2EngineCallback XAudio2 motort implementáló osztály egy példányának regisztrálásával értesítheti. Ez lehetővé teszi az XAudio2 ügyfélkódjának nyomon követését, hogy mikor történik a hangfeldolgozás, és mikor indítsa újra a motort kritikus hiba esetén.
Motorvisszahívás használata
Az alábbi lépések regisztrálnak egy objektumot a motoresemények kezeléséhez.
Hozzon létre egy osztályt, amely a IXAudio2EngineCallback felülettől örököl.
Az IXAudio2EngineCallbackminden metódusa tisztán virtuális, és definiálni kell. Ebben a példában az érdekes módszer a IXAudio2EngineCallback::OnCriticalError, amely egy jelzőt állít be a fő játék hurokjának jelezve, hogy egy kritikus hiba történt. A többi metódus, IXAudio2EngineCallback::OnProcessingPassStart és IXAudio2EngineCallback::OnProcessingPassEnd, a példában csonkok.
class EngineCallback : public IXAudio2EngineCallback { void OnProcessingPassEnd () {} void OnProcessingPassStart() {} void OnCriticalError (HRESULT Error) {} };
Az XAudio2 motor egy példányának létrehozásához használja XAudio2Create.
if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) ) return hr;
A motorvisszahívás regisztrálásához használja IXAudio2::RegisterForCallbacks.
pXAudio2->RegisterForCallbacks( &engineCallback );
Ha már nincs szüksége a motor visszahívására, hívja IXAudio2::UnregisterForCallbacks.
pXAudio2->UnregisterForCallbacks( &engineCallback );
Kapcsolódó témakörök