共用方式為


使用方法:使用引擎回呼

您可以向 XAudio2 引擎註冊實作 IXAudio2EngineCallback 介面的類別實例,以通知引擎事件的 XAudio2 用戶端程式代碼。 這可讓 XAudio2 用戶端程式代碼追蹤何時發生音訊處理,以及在發生重大錯誤時重新開機引擎的時機。

使用引擎回呼

下列步驟會註冊 物件來處理引擎事件。

  1. 建立繼承自 IXAudio2EngineCallback 介面的類別。

    IXAudio2EngineCallback的所有方法都是虛擬的,必須加以定義。 此範例中感興趣的方法是 IXAudio2EngineCallback::OnCriticalError,它會設定旗標以向主要遊戲迴圈發出重大錯誤發生訊號。 此範例中其餘的方法 IXAudio2EngineCallback::OnProcessingPassStartIXAudio2EngineCallback::OnProcessingPassEnd是存根。

    class EngineCallback : public IXAudio2EngineCallback
    {
        void OnProcessingPassEnd () {}
        void OnProcessingPassStart() {}
        void OnCriticalError (HRESULT Error) {}
    };
    
  2. 使用 XAudio2Create 建立 XAudio2 引擎的實例。

    if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) )
        return hr;
    
  3. 使用 IXAudio2::RegisterForCallbacks 來註冊引擎回呼。

    pXAudio2->RegisterForCallbacks( &engineCallback );
    
  4. 如果您不再需要引擎回呼,請呼叫 IXAudio2::UnregisterForCallbacks

    pXAudio2->UnregisterForCallbacks( &engineCallback );
    

回撥

XAudio2 回呼

XAudio2 程式設計指南

使用方法:建立基本音訊處理圖形

使用方法:從磁碟串流處理音效