Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können den XAudio2-Clientcode über Engine-Ereignisse benachrichtigen, indem Sie eine instance einer Klasse registrieren, die die IXAudio2EngineCallback-Schnittstelle mit der XAudio2-Engine implementiert. Dadurch kann der XAudio2-Clientcode nachverfolgen, wann die Audioverarbeitung stattfindet und wann die Engine bei einem kritischen Fehler neu gestartet werden soll.
So verwenden Sie einen Engine-Rückruf
In den folgenden Schritten wird ein -Objekt registriert, um Engine-Ereignisse zu behandeln.
Erstellen Sie eine Klasse, die von der IXAudio2EngineCallback-Schnittstelle erbt.
Alle Methoden von IXAudio2EngineCallback sind rein virtuell und müssen definiert werden. Die in diesem Beispiel interessante Methode ist IXAudio2EngineCallback::OnCriticalError, die ein Flag festlegt, um der Standard Spielschleife zu signalisieren, dass ein kritischer Fehler aufgetreten ist. Die übrigen Methoden IXAudio2EngineCallback::OnProcessingPassStart und IXAudio2EngineCallback::OnProcessingPassEnd sind stubs in diesem Beispiel.
class EngineCallback : public IXAudio2EngineCallback { void OnProcessingPassEnd () {} void OnProcessingPassStart() {} void OnCriticalError (HRESULT Error) {} };Verwenden Sie XAudio2Create, um eine instance der XAudio2-Engine zu erstellen.
if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) ) return hr;Verwenden Sie IXAudio2::RegisterForCallbacks , um den Engine-Rückruf zu registrieren.
pXAudio2->RegisterForCallbacks( &engineCallback );Wenn Sie den Engine-Rückruf nicht mehr benötigen, rufen Sie IXAudio2::UnregisterForCallbacks auf.
pXAudio2->UnregisterForCallbacks( &engineCallback );
Zugehörige Themen