IXAudio2::CreateSubmixVoice メソッド (xaudio2.h)

サブミックス音声を作成して構成します。

構文

HRESULT CreateSubmixVoice(
  [out]          IXAudio2SubmixVoice        **ppSubmixVoice,
  [in]           UINT32                     InputChannels,
  [in]           UINT32                     InputSampleRate,
  [in]           UINT32                     Flags,
  [in]           UINT32                     ProcessingStage,
  [in, optional] const XAUDIO2_VOICE_SENDS  *pSendList,
  [in, optional] const XAUDIO2_EFFECT_CHAIN *pEffectChain
);

パラメーター

[out] ppSubmixVoice

成功した場合は、新しい IXAudio2SubmixVoice オブジェクトへのポインターを返します。

[in] InputChannels

サブミックス音声の入力オーディオ データ内のチャネルの数。 InputChannel は、 XAUDIO2_MAX_AUDIO_CHANNELS以下である必要があります。

[in] InputSampleRate

サブミックス音声の入力オーディオ データのサンプル レート。 このレートは、XAUDIO2_QUANTUM_DENOMINATORの倍数である必要があります。 InputSampleRate は、XAUDIO2_MIN_SAMPLE_RATEとXAUDIO2_MAX_SAMPLE_RATEの間にある必要があります。

[in] Flags

サブミックス音声の動作を指定するフラグ。 0 または次の値を指定できます。

説明
XAUDIO2_VOICE_USEFILTER フィルター効果は、この音声で使用できる必要があります。

[in] ProcessingStage

XAudio2 エンジンが他のサブミックス音声を実行している場合に、この音声が他のサブミックス音声に対していつ処理されるのかを指定する任意の番号。 音声は、より小さい ProcessingStage 値を含む他のすべての音声の後、およびより大きな ProcessingStage 値を含む他のすべての音声の前に処理されます。 同じ ProcessingStage 値を含む音声は、任意の順序で処理されます。 サブミックス音声は、 ProcessingStage 値が小さいか等しい別のサブミックス音声に送信できません。 これにより、サブミックス サイクルが原因でオーディオが失われるのを防ぐことができます。

[in, optional] pSendList

サブミックス音声の宛先音声のセットを記述する XAUDIO2_VOICE_SENDS 構造のリストへのポインター。 pSendList が NULL の場合、送信リストは既定で作成された最初のマスタリング音声への 1 つの出力になります。

[in, optional] pEffectChain

サブミックス音声で使用 する エフェクト チェーンを記述するXAUDIO2_EFFECT_CHAIN構造体のリストへのポインター。

戻り値

成功した場合はS_OKを返します。それ以外の場合は、エラー コード。

XAudio2 固有のエラー コードの説明については、「XAudio2 エラー コード」を参照してください。

注釈

サブミックス音声は、1 つ以上のソース音声またはサブミックス音声の出力を受信します。 出力を処理し、別のサブミックス音声またはマスタリング音声に送信します。

サブミックス音声は、入力サンプル レートから pSendList の出力音声の入力レートへのサンプル レート変換を実行します。 複数の音声送信を指定する場合は、入力のサンプル レートがすべて同じである必要があります。

マスター音声が存在するまでは、ソース音声またはサブミックス音声を作成することはできません。また、ソースまたはサブミックスの音声がまだ存在する場合は、マスタリング音声を破棄することはできません。

最初に作成すると、サブミックス音声は開始状態になります。

XAudio2 は、同じ形式の音声に内部メモリ プーラーを使用します。 つまり、より多くの音声が作成され、破棄されると、音声のメモリ割り当てが発生する頻度が低くなります。 Just-In-Time の割り当てを最小限に抑えるために、タイトルで事前に必要な予想される最大音声数を作成し、必要に応じて削除できます。 その後、XAudio2 プールから音声が再利用されます。 メモリ プールは XAudio2 エンジン インスタンスに関連付けられています。 XAudio2 オブジェクトを破棄し、必要に応じて再作成することで、XAudio2 エンジンのインスタンスで使用されるすべてのメモリを再利用できます (事前割り当てによってメモリ プールを強制的に拡張するには、必要に応じて再適用する必要があります)。

コールバック (つまり、IXAudio2EngineCallback または IXAudio2VoiceCallback) 内から CreateSubmixVoice を呼び出すと無効です。 コールバック内で CreateSubmixVoice を 呼び出すと、XAUDIO2_E_INVALID_CALLが返されます。

pEffectChain 引数として渡されるXAUDIO2_EFFECT_CHAINとその中に含まれるXAUDIO2_EFFECT_DESCRIPTOR情報は、CreateSubmixVoice が正常に完了した後は不要になり、CreateSubmixVoice が呼び出された直後に削除される可能性があります。

プラットフォームの要件

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

要件

要件
対象プラットフォーム Windows
ヘッダー xaudio2.h

こちらもご覧ください

IXAudio2

XAudio2 サンプル レート変換