方法 : エンジン コールバックの使用
XAudio2 クライアント コードにエンジン イベントを通知するには、XAudio2 エンジンに IXAudio2EngineCallback インターフェイスを実装するオブジェクトを登録します。これにより、XAudio2 クライアント コードでオーディオ処理が発生したタイミングを追跡し、重大なエラーが発生したときにエンジンを再起動できます。
エンジン コールバックを使用するには
次の手順では、オーディオ処理のパスが開始したときと終了するときに、エンジン イベントを処理するオブジェクトが登録されます。
IXAudio2EngineCallback インターフェイスから継承したクラスを作成します。
IXAudio2EngineCallback のすべてのメンバー メソッドは、純粋な仮想関数であり、定義する必要があります。この例の対象となるメソッドは、IXAudio2EngineCallback::OnProcessingPassStart メソッドと IXAudio2EngineCallback::OnProcessingPassEnd メソッドです。残りのメソッド IXAudio2EngineCallback::OnCriticalError は、この例ではスタブです。
class EngineCallback : public IXAudio2EngineCallback { void OnProcessingPassEnd () {} void OnProcessingPassStart() {} void OnCriticalError (HRESULT Error) {} };
XAudio2Create を使用して、XAudio2 エンジンのインスタンスを作成します。
if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) ) return hr;
IXAudio2::RegisterForCallbacks を使用して、エンジン コールバックを登録します。
pXAudio2->RegisterForCallbacks( &engineCallback );
エンジン コールバックがこれ以上必要ない場合には、IXAudio2::UnregisterForCallbacks を呼び出します。
pXAudio2->UnregisterForCallbacks( &engineCallback );
関連トピック
- XAudio2 のコールバック
XAudio2 のコールバックの概要を説明します。
- XAudio2 の概要
XAudio2 の概要を説明します。
- 方法 : 基本的なオーディオ処理グラフの作成
XAudio2 でサウンドを再生するために必要となる最小限のセットアップについて説明します。
- 方法 : ディスクからのサウンドのストリーム
ディスクからのオーディオ データの再生でコールバックを使用する方法を説明します。