Megosztás a következőn keresztül:


Ú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.

  1. 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) {}
    };
    
  2. 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;
    
  3. A motorvisszahívás regisztrálásához használja IXAudio2::RegisterForCallbacks.

    pXAudio2->RegisterForCallbacks( &engineCallback );
    
  4. Ha már nincs szüksége a motor visszahívására, hívja IXAudio2::UnregisterForCallbacks.

    pXAudio2->UnregisterForCallbacks( &engineCallback );
    

Visszahívások

XAudio2 visszahívások

XAudio2 programozási útmutató

Útmutató: Alapszintű hangfeldolgozási gráf

Hang streamelése lemezről