XAPO 概要

XAPO API を使用すると、Windows と Xbox 360 の両方で XAudio2 で使用するためのクロスプラットフォーム オーディオ処理オブジェクト (XAPO) を作成できます。 XAPO は、受信オーディオ データを受け取り、渡す前にデータに対して何らかの操作を実行するオブジェクトです。 XAPO を使用すると、オーディオ ストリームへのリバーブの追加やピーク ボリューム レベルの監視など、さまざまなタスクを実行できます。

新しい XAPOs の作成

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

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

実行時パラメーターを受け入れる XAPO の作成例については、「 方法: XAPO にランタイム パラメーター サポートを追加する」を参照してください。

XAPOs と COM

XAPO は IUnknown インターフェイスを実装します。 IXAPO インターフェイスと IXAPOParameters インターフェイスには、QueryInterfaceAddRefRelease の 3 つの IUnknown メソッドが含まれています。 CXAPOBase には、3 つの IUnknown メソッドの実装がすべて用意されています。 CXAPOBase の新しいインスタンスの参照カウントは 1 になります。 参照カウントが 0 になると破棄されます。 IXAPOIXAPOParameter の実装は、XAudio2 で使用する場合に適切な管理を可能にするために、同じパターンに従う必要があります。

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

XAudio2 での XAPO の使用

XAUDIO2 では、XAPO を音声にアタッチして使用します。 各 XAudio2 音声には、0 個以上のオーディオ効果を含むエフェクト チェーンがあります。 音声に送信されたオーディオ データは、音声の出力ターゲットに送信される前に、チェーン内の各エフェクトを介して渡されます。 IXAPO::P rocess メソッドの pInputProcessParameters パラメーターを使用して、音声から各効果にデータが渡されます。 その後、 pOutputProcessParameters パラメーターを使用して音声に返されます。 音声は各エフェクトの出力を受け取り、チェーン内にエフェクトが残らなくなるまでチェーン内の次の効果に送ります。

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

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

効果ライブラリ

XAPO 効果ライブラリには、いくつかの XAPO と、それらをインスタンス化する一般的なメソッドが含まれています。 XAPOFX の詳細については、「 XAPOFX の概要 」を参照してください。 また、XAudio2にはリバーブとボリュームメーターのエフェクトが組み込まれています。 組み込みの XAudio2 効果 の詳細については、「XAudio2 Audio Effects」を参照してください。

オーディオ効果

XAudio2 のオーディオ エフェクト