次の方法で共有


XAPO の概要

XAPO API を使用すると、Windows と Xbox 360 の両方で XAudio2 および Microsoft Cross-Platform Audio Creation Tool (XACT) で使用するクロスプラットフォーム オーディオ処理オブジェクト (XAPO) を作成できます。XAPO は、着信オーディオ データを受け取ると、それを転送する前にデータに何らかの処理を実行します。XAPO は、オーディオ ストリームへのリバーブの追加やピーク ボリューム レベルの監視を含め、さまざまなタスクの実行に使用できます。

新しい XAPO の作成

XAPO API には、新しい XAPO タイプの作成に使用できる IXAPO インターフェイスと CXAPOBase クラスが用意されています。IXAPO インターフェイスには、新しい XAPO を作成するために実装する必要のあるすべてのメソッドが含まれます。CXAPOBase クラスは、IXAPO インターフェイスの基本的な実装を提供します。CXAPOBase は、各 XAPO に固有の IXAPO::Process メソッドを除き、IXAPO インターフェイスのすべてのメソッドを実装します。

新しい XAPO の作成例については、「方法 : XAPO の作成」を参照してください。

ランタイム パラメーターを使用できる XAPO の作成例については、「方法 : XAPO へのランタイム パラメーター サポートの追加」を参照してください。

XAPO と COM

XAPO では IUnknown インターフェイスが実装されます。IXAPO および IXAPOParameters インターフェイスには、3 つのIUnknown メソッド (QueryInterfaceAddRef、および Release) があります。CXAPOBase は、3 つのすべての IUnknown メソッドの実装を提供します。CXAPOBase の新しいインスタンスのリファレンス カウントは 1 になります。それが 0 になるとインスタンスは破棄されます。IXAPO および IXAPOParameters の実装は、XACT および XAudio2 で使用する際に正しく管理できるよう、同じパターンに従う必要があります。

XAPO インスタンスは IUnknown インターフェイスとして XAudio2 に渡されます。XAudio2 は XAPO の概要 を使用して IXAPO インターフェイスを取得し、XAPO が IXAPOParameters インターフェイスを実装しているかどうかを検出します。IXAPO を実装するには、__uuidof(IXAPO) の要求を受け入れる必要があります。IXAPOParameters を実装する場合は、__uuidof(IXAPOParameters) の要求も受け入れる必要があります。

XAudio2 での XAPO の使用

XAPO はボイスにアタッチすることにより、XAudio2 で使用できます。各 XAudio2 ボイスには 0 個以上のオーディオ エフェクトを含むエフェクト チェーンがあります。オーディオ データは、ボイスの出力ターゲットに送信される前に、チェーンの各エフェクトを介してボイスに送信されます。データは、IXAPO::Process メソッドの pInputProcessParameters パラメーターを使用して、ボイスから各エフェクトに渡し、pOutputProcessParameters パラメーターによってボイスに返されます。ボイスは各エフェクトの出力を受け取り、それをチェーン内の次のエフェクトに渡します。この受け渡しは、チェーンにエフェクトがなくなるまで繰り返されます。

XAudio2 エフェクト チェーンの詳細については、「XAudio2 オーディオ エフェクト」を参照してください。

XAudio2 での XAPO の使用例については、「方法 : XAudio2 での XAPO の使用」を参照してください。

関連トピック