共用方式為


IXAPO::P rocess 方法 (xapo.h)

在指定的輸入和輸出緩衝區上執行 XAPO 的數位訊號處理 (DSP) 程式碼。

語法

void Process(
  [in]      UINT32                               InputProcessParameterCount,
  [in]      const XAPO_PROCESS_BUFFER_PARAMETERS *pInputProcessParameters,
  [in]      UINT32                               OutputProcessParameterCount,
  [in, out] XAPO_PROCESS_BUFFER_PARAMETERS       *pOutputProcessParameters,
            BOOL                                 IsEnabled
);

參數

[in] InputProcessParameterCount

pInputProcessParameters 中的專案數目。

注意 XAudio2 目前僅支援一個輸入資料流程和一個輸出資料流程。
 

[in] pInputProcessParameters

XAPO_PROCESS_BUFFER_PARAMETERS結構的輸入陣列。

[in] OutputProcessParameterCount

pOutputProcessParameters中的專案數目。

注意 XAudio2 目前僅支援一個輸入資料流程和一個輸出資料流程。
 

[in, out] pOutputProcessParameters

XAPO_PROCESS_BUFFER_PARAMETERS結構的輸出陣列。 在輸入時, XAPO_PROCESS_BUFFER_PARAMETERS的值。 ValidFrameCount 指出 XAPO 應該寫入輸出緩衝區的畫面數。 輸出時, XAPO_PROCESS_BUFFER_PARAMETERS的值。 ValidFrameCount 表示寫入的實際畫面數。

IsEnabled

TRUE 表示正常處理;FALSE 可透過處理。 如需詳細資訊,請參閱。

傳回值

備註

此函式的實作不應該封鎖,因為函式是從即時音訊處理執行緒呼叫。

可能導致延遲的所有程式碼,例如格式驗證和記憶體配置,都應該放在 IXAPO::LockForProcess 方法中,這不會從即時音訊處理執行緒呼叫。

就地處理而言, pInputProcessParameters 參數不一定與 pOutputProcessParameters相同。 相反地,其 pBuffer 成員會指向相同的記憶體。

雖然輸入緩衝區計數必須等於輸出緩衝區計數,但多個輸入和輸出緩衝區可能會與就地 XAPO 搭配使用。 若要在使用多個輸入和輸出緩衝區時就地處理,XAPO 可能會假設輸入緩衝區的數目等於輸出緩衝區的數目。

除了適當地寫入輸出緩衝區之外,XAPO 還負責設定輸出資料流程的緩衝區旗標和有效的畫面計數。

IsEnabled 為 FALSE 時,XAPO 不應該將其正常處理套用至指定的輸入/輸出緩衝區。 它應該改為將資料從輸入傳遞至輸出,並盡可能進行少量修改。 執行格式轉換的效果應該會繼續執行。 效果必須確保一般與處理之間的轉換不會造成訊號的不連續。

撰寫 Process 方法時,請務必注意 XAudio2 音訊資料交錯,這表示來自每個通道的資料會與特定樣本編號相鄰。 例如,如果有 4 個通道的波浪播放到 XAudio2 來源語音,音訊資料會是通道 0 的範例、通道 1 的範例、通道 2 的範例、通道 3 的樣本,然後是通道 0、1、2、3 等的下一個通道範例。

平臺需求

Windows 10 (XAudio2.9) ;Windows 8,Windows Phone 8 (XAudio 2.8) ;DirectX SDK (XAudio 2.7)

規格需求

   
目標平台 Windows
標頭 xapo.h

另請參閱

IXAPO