XAPO 概觀
XAPO API 允許建立跨平台音訊處理物件 (XAPO),以用於 Windows 和 Xbox 360 上的 XAudio2。 XAPO 是接受傳入音訊數據的物件,並在傳遞數據之前先對數據執行一些作業。 您可以使用 XAPO 來執行各種工作,包括將殘響新增至音訊串流,以及監視尖峰音量層級。
建立新的 XAPOs
XAPO API 提供 IXAPO 介面,以及建置新 XAPO 類型的 CXAPOBase 類別。 IXAPO 介面包含所有需要實作以建立新 XAPO 的方法。 CXAPOBase 類別提供 IXAPO 介面的基本實作。 CXAPOBase 會實作所有 IXAPO 介面方法,但 IXAPO::P rocess 方法除外,每個 XAPO 都是唯一的。
如需建立新 XAPO 的範例,請參閱 如何:建立 XAPO。
如需建立接受執行時間參數的 XAPO 範例,請參閱 如何:將執行時間參數支援新增至 XAPO。
XAPOs 和 COM
XAPOs 會實作 IUnknown 介面。 IXAPO 和 IXAPOParameters 介面包括三個 IUnknown 方法:QueryInterface、AddRef和 Release。 CXAPOBase 提供所有三個 IUnknown 方法的實作。 CXAPOBase 的新實例會有 1 個參考計數。 當其參考計數變成 0 時,它將被銷毀。 IXAPO 和 IXAPOParameters 的實作應該遵循相同的模式,以便在搭配 XAudio2 使用時,允許其適當的管理。
XAPO 實例會以 IUnknown 介面的形式傳遞至 XAudio2。 XAudio2 會使用 QueryInterface 來取得 IXAPO 介面,並偵測 XAPO 是否實作 IXAPOParameters 介面。 IXAPO 實作必須接受 __uuidof(IXAPO)的請求。 如果實作 IXAPOParameters,它也必須接受 __uuidof(IXAPOParameters)的要求。
在 XAudio2 中使用 XAPO
XAPOs 是在 XAudio2 中透過附加到聲音來使用的。 每個 XAudio2 語音都有一個包含零個或多個音訊效果的效果鏈結。 傳送至語音的音訊數據會先通過鏈結中的每個效果,再傳送至語音的輸出目標。 數據會使用 IXAPO::P rocess 方法的 pInputProcessParameters 參數,從語音傳遞至每個效果。 然後使用 pOutputProcessParameters 參數 傳回語音。 語音會取得每個效果的輸出,並將它饋送至鏈結中的下一個效果,直到沒有任何效果留在鏈結中為止。
如需 XAudio2 效果鏈結的詳細資訊,請參閱 XAudio2 音訊效果。
如需在 XAudio2 中使用 XAPO 的範例,請參閱 如何:在 XAudio2 中使用 XAPO。
效果庫
XAPO 效果庫包含數個 XAPO,及一個常見的建立方法。 如需 XAPOFX 的相關信息,請參閱 XAPOFX 概觀。 此外,XAudio2 具有內建的殘響和音量計量效果。 如需內建 XAudio2 效果的詳細資訊,請參閱 XAudio2 音訊效果。
相關主題