次の方法で共有


IXAudio2SourceVoice::SetFrequencyRatio

ボイスの周波数調整比を設定します。

HRESULT 
SetFrequencyRatio(
  float Ratio,
  UINT32 OperationSet = XAUDIO2_COMMIT_NOW
);

パラメータ

  • Ratio
    周波数調整比です。この値は、XAUDIO2_MIN_FREQ_RATIO と、ボイスの作成時に指定された MaxFrequencyRatio パラメーターの範囲内である必要があります (「IXAudio2::CreateSourceVoice」を参照してください)。XAUDIO2_MIN_FREQ_RATIO は現在 0.0005 であり、最大 11 オクターブまでピッチを下げることができます。
  • OperationSet
    この呼び出しを遅延バッチの一部として指定します。詳細については、「XAudio2 操作セット」の概要を参照してください。

戻り値

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

解説 

周波数比は、ソース周波数 / ターゲット周波数 で表します。周波数比を変更すると、ボイスの音声が再生されるときの速度も変化します。周波数比が 1.0 を超える場合は、オーディオがより高速に再生され、1.0 未満の場合は、オーディオがより低速で再生されます。また、周波数比は、ボイスのオーディオのピッチにも影響します。例として、値 1.0 ではオーディオに影響はありませんが、値 2.0 ではピッチが 1 オクターブ上がり、値 0.5 ではピッチが 1 オクターブ下がります。

有効な範囲外の Ratio の値を指定して SetFrequencyRatio を呼び出した場合、周波数比はメソッドによって、最も近い有効な値に設定されます。また、デバッグ ビルドのために警告も生成されます。

    IXAudio2SourceVoice::SetFrequencyRatio への呼び出しを使用して周波数比を変更した直後に IXAudio2SourceVoice::GetFrequencyRatio を呼び出した場合は、古いパラメーターが返されることがあります。これは、パラメーターが非同期的に設定されるためです。変更は、次にオーディオ エンジンを実行したときにのみ反映されます。

要件

ヘッダー: Xaudio2.h 宣言

関連項目

IXAudio2SourceVoice, 方法 : ボイス ピッチの変更