次の方法で共有


IXAudio2SourceVoice::SetFrequencyRatio メソッド

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

構文

HRESULT SetFrequencyRatio(         float Ratio,         UINT32 OperationSet = XAUDIO2_COMMIT_NOW)

パラメーター

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

戻り値

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

解説 

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

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

注意

IXAudio2SourceVoice::GetFrequencyRatio は、常にボイスの現在の実際の周波数比を返します。ただし、この比は、前回の IXAudio2SourceVoice::SetFrequencyRatio 呼び出しによって設定された比と一致しない場合があります。実際の比は、IXAudio2SourceVoice::SetFrequencyRatio 呼び出しの後 (または、IXAudio2SourceVoice::SetFrequencyRatio が遅延操作 ID を使用して呼び出された場合は、対応する IXAudio2::CommitChanges 呼び出しの後) に、次回にオーディオ エンジンが実行されたときに初めて変更されます。

要件

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

関連項目

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