次の方法で共有


IXAudio2Voice::SetEffectParameters メソッド

ボイスのエフェクト チェーン内の特定のエフェクトのパラメーターを設定します。

構文

HRESULT SetEffectParameters(         UINT32 EffectIndex,         const void *pParameters,         UINT32 ParametersByteSize,         UINT32 OperationSet = XAUDIO2_COMMIT_NOW)

パラメーター

  • EffectIndex
    [in] ボイスのエフェクト チェーン内のエフェクトの、0 から始まるインデックス。
  • pParameters
    [in] エフェクト固有のパラメーターの現在の値を返します。
  • ParametersByteSize
    [in] pParameters 配列のサイズ (バイト単位) です。
  • OperationSet
    [in] この呼び出しを遅延バッチの一部として指定します。詳細については、「XAudio2 操作セット」の概要を参照してください。

戻り値

正常に実行された場合は S_OK を返し、失敗した場合はエラー コードを返します。エラー コードの説明については、「XAudio2 エラー コード」を参照してください。

エフェクトで汎用パラメーター制御インターフェイスがサポートされていない場合は、失敗して E_NOTIMPL が返されます。

解説 

pParameters バッファーの有効なサイズおよび形式を決めるために使用されている特定のエフェクトです。pParameters が無効な場合や ParametersByteSize がエフェクトで期待されるサイズとは異なる場合、この呼び出しは失敗します。クライアントは、SetEffectParameters 呼び出しを正しいエフェクトに送るように十分に注意する必要があります。この呼び出しを、偶然同じパラメーター ブロック サイズを受け付ける別のエフェクトに送った場合、パラメーターが異なる意味に解釈され、予期しない結果につながる可能性があります。

pParameters によって参照されるメモリーは、すぐに解放しないでください。後でパラメーターが実際にエフェクトに適用されるときに、XAudio2 で参照する必要があるためです。このような状況は、OperationSet 引数が XAUDIO2_COMMIT_NOW である場合は、次のオーディオ処理のパスで発生します。それ以外の場合、パラメーターは、後に同じ OperationSet 引数で IXAudio2::CommitChanges 関数が呼び出された後の最初の処理パスでエフェクトに適用されます。

SetEffectParameters は、XAUDIO2_COMMIT_NOW の操作セットを使用して XAudio2 コールバックから呼び出されるとすぐに有効になります。

注意

IXAudio2Voice::GetEffectParameters は、常にエフェクトの現在の実際のパラメーターを返します。ただし、これらのパラメーターは、前回の IXAudio2Voice::SetEffectParameters 呼び出しによって設定されたパラメーターと一致しない場合があります。実際のパラメーターは、IXAudio2Voice::SetEffectParameters 呼び出しの後 (または、IXAudio2Voice::SetEffectParameters が遅延操作 ID を使用して呼び出された場合は、対応する IXAudio2::CommitChanges 呼び出しの後)、次にオーディオ エンジンが実行されたときに初めて変更されます。

要件

ヘッダー: xaudio2.h で宣言されています。

関連項目

IXAudio2Voice
方法 : エフェクト チェーンの作成
IXAPOParameters::SetParameters
XAPO の概要