Guida: Utilizzare i richiami del motore
È possibile inviare una notifica al codice client XAudio2 degli eventi del motore registrando un'istanza di una classe che implementa l'interfacciaIXAudio2EngineCallbackcon il motore XAudio2. Ciò consente al codice client XAudio2 di tenere traccia di quando si verifica l'elaborazione audio e quando riavviare il motore in caso di errore critico.
Per usare un callback del motore
I passaggi seguenti registrano un oggetto per gestire gli eventi del motore.
Creare una classe che eredita dall'interfaccia IXAudio2EngineCallback.
Tutti i metodi di IXAudio2EngineCallback sono puramente virtuali e devono essere definiti. Il metodo di interesse in questo esempio è IXAudio2EngineCallback::OnCriticalError, che imposta un flag per segnalare il ciclo del gioco principale che si è verificato un errore critico. I metodi rimanenti, IXAudio2EngineCallback::OnProcessingPassStart e IXAudio2EngineCallback::OnProcessingPassEnd, sono stub in questo esempio.
class EngineCallback : public IXAudio2EngineCallback { void OnProcessingPassEnd () {} void OnProcessingPassStart() {} void OnCriticalError (HRESULT Error) {} };
Usare XAudio2Creare per creare un'istanza del motore XAudio2.
if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) ) return hr;
Usare IXAudio2::RegisterForCallbacks per registrare il callback del motore.
pXAudio2->RegisterForCallbacks( &engineCallback );
Se non è più necessario il callback del motore, chiamare IXAudio2::UnregisterForCallbacks.
pXAudio2->UnregisterForCallbacks( &engineCallback );
Argomenti correlati