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 宣言