次の方法で共有


XAudio2CreateReverb 関数 (xaudio2fx.h)

新しいリバーブ オーディオ処理オブジェクト (APO) を作成し、そのオブジェクトへのポインターを返します。

構文

HRESULT XAudio2CreateReverb(
  [in, out] IUnknown     **ppApo,
  [in]      UINT32 Flags DEFAULT
);

パラメーター

[in, out] ppApo

作成されるリバーブ APO へのポインターが含まれています。

[in] DEFAULT

APO の動作を指定するフラグ。 このパラメーターの値は 0 にする必要があります。

戻り値

この関数が成功すると、S_OKが返されます。 それ以外の場合は、HRESULT エラー コードが返されます。

注釈

XAudio2CreateReverb は、プリンストン デジタル リバーブを実行する効果を作成します。 XAPO エフェクト ライブラリ (XAPOFX) には、代替リバーブ エフェクトが含まれています。 CreateFX を使用して、この代替効果を作成します。

リバーブ APO のサポートには、次の制限があります。

  • 入力オーディオ データはFLOAT32する必要があります。
  • フレームレートは、XAUDIO2FX_REVERB_MIN_FRAMERATE (20,000 Hz) およびXAUDIO2FX_REVERB_MAX_FRAMERATE (48,000 Hz) 内である必要があります。
  • 入力チャネルと出力チャネルは、次のいずれかの組み合わせである必要があります。
    • モノラル入力とモノラル出力
    • モノラル入力と 5.1 出力
    • ステレオ入力とステレオ出力
    • ステレオ入力と 5.1 出力
リバーブ APO は、処理サンプル間の内部状態情報を保持します。 APO のインスタンスは、一度に 1 つのオーディオ データ ソースでのみ使用できます。 リバーブエフェクトを必要とする複数のボイスは、それぞれ XAudio2CreateReverbで個別のリバーブエフェクトを作成する必要があります。

XAudio2 で使用する新しい効果の作成については、 XAPO の概要を参照してください。

ウィンドウズ
XAudio2CreateReverb は Windows 上で CoCreateInstance を呼び出すので、アプリケーションは XAudio2CreateReverb を呼び出す前に CoInitializeEx メソッドを呼び出す必要があります。 XAudio2Create には同じ要件があります。つまり、 CoInitializeEx は通常 、XAudio2CreateReverb が呼び出されるずっと前に呼び出されます。

Windows での一般的な呼び出しパターンは次のようになります。

#ifndef _XBOX
CoInitializeEx(NULL, COINIT_MULTITHREADED);
#endif
IXAudio2* pXAudio2 = NULL;
HRESULT hr;
if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) )
    return hr;
...
IUnknown * pReverbAPO;
XAudio2CreateReverb(&pReverbAPO);

 

xaudio2fx.h ヘッダーは 、AudioReverb クラス GUID をクロスプラットフォーム オーディオ処理オブジェクト (XAPO) として定義します。

class __declspec(uuid("C2633B16-471B-4498-B8C5-4F0959E2EC09")) AudioReverb;

XAudio2CreateReverb は、ppApo パラメーターの IUnknown へのポインターへのポインターとしてこのオブジェクトを返します。 この IUnknown から IXAPO インターフェイスと IXAPOParameters インターフェイスに対してクエリを実行できますが、通常、これらのインターフェイスを直接使用することはありません。 代わりに、ボイスを作成してエフェクト チェーンの一部として追加するときに使用します。

リバーブでは、IXAudio2Voice::SetEffectParameters を介してアクセスする XAUDIO2FX_REVERB_PARAMETERS パラメーター構造が使用されます。

  XAudio2CreateReverb は、次のコード例に示すように CreateAudioReverb を呼び出す xaudio2fx.h のインライン関数です。

XAUDIO2FX_STDAPI CreateAudioReverb(_Outptr_ IUnknown** ppApo);
__inline HRESULT XAudio2CreateReverb(_Outptr_ IUnknown** ppApo, UINT32 /*Flags*/ DEFAULT(0))
{
    return CreateAudioReverb(ppApo);
}
 

プラットフォームの要件

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

要求事項

要件 価値
ターゲット プラットフォーム の ウィンドウズ
ヘッダ xaudio2fx.h
図書館 Xaudio2.lib
DLL Windows.Media.Audio.dll

こちらも参照ください

方法: エフェクト チェーン を作成する

IXAudio2Voice::SetEffectParameters

XAUDIO2FX_REVERB_PARAMETERS

XAudio2 関数