次の方法で共有


CXAPOBase::P rocessThru メソッド (xapobase.h)

XAPO がスルー処理で無効になっている場合 、IXAPO::P rocess 実装によって呼び出されます。

構文

void ProcessThru(
  const void *pInputBuffer,
  FLOAT32    *pOutputBuffer,
  UINT32     FrameCount,
  UINT32     InputChannelCount,
  UINT32     OutputChannelCount,
  BOOL       MixWithOutput
);

パラメーター

pInputBuffer

入力オーディオ データを含むバッファーへのポインター。

pOutputBuffer

処理されたオーディオ データを格納するバッファーへのポインター。

FrameCount

処理するオーディオ データのフレーム数。フレームは、オーディオ データのチャネルごとに 1 つずつ、サンプルのブロックです。

InputChannelCount

入力データ バッファー内のチャネルの数。

OutputChannelCount

出力データ バッファー内のチャネルの数。

MixWithOutput

宛先バッファーと混在させる場合は TRUE、宛先バッファーを上書きする場合は FALSE。

戻り値

なし

解説

ProcessThru は、ソースからコピー先にデータをコピー/ミックスし、オーディオ データに対する変更を可能な限り少なくします。 ただし、 ProcessThru はチャネルアップミックス/ダウンミックスが可能であり、Windows Vista で使用されるのと同じ行列係数テーブルを使用します。

この関数は、次の場合に呼び出される場合があります。

  1. XAPO はロックされ、無効になっています。
  2. ソース フレームの数は、ターゲット フレームの数と同じです。
  3. 出力形式はFLOAT32。
  4. 入力形式は、INT8、INT16、INT20 (24 または 32 ビットに含まれます)、INT24 (24 または 32 ビットに含まれる)、INT32、またはFLOAT32です。
インプレース処理 (入力バッファーが出力バッファーと等しい) の場合、この関数は何も行いません。

ProcessThru メソッドを記述するときは、XAudio2 オーディオ データがインターリーブされ、各チャネルからのデータが特定のサンプル番号に対して隣接している点に注意することが重要です。 たとえば、XAudio2 ソース音声に 4 チャンネルの波が再生されている場合、オーディオ データはチャネル 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
ヘッダー xapobase.h
Library XAPOBase.lib

関連項目

CXAPOBase

IXAPO