共用方式為


IXAudio2SourceVoice::SetFrequencyRatio 方法 (xaudio2.h)

設定語音的頻率調整比例。

語法

HRESULT SetFrequencyRatio(
  [in] float  Ratio,
  [in] UINT32 OperationSet
);

參數

[in] Ratio

頻率調整比例。 此值必須介於 XAUDIO2_MIN_FREQ_RATIO 和建立語音時所指定的 MaxFrequencyRatio 參數 (請參閱 IXAudio2::CreateSourceVoice) 。 XAUDIO2_MIN_FREQ_RATIO目前為 0.0005,可讓音調降低最多 11 個八位。

[in] OperationSet

將此呼叫識別為延遲批次的一部分。 如需詳細資訊,請參閱 XAudio2 作業集 概觀。

傳回值

如果成功,則傳回S_OK,否則傳回錯誤碼。 如需錯誤碼的描述,請參閱 XAudio2 錯誤 碼。

備註

頻率調整會以 來源頻率 / 目標頻率表示。 變更頻率比率會變更音訊在語音上播放的速率。 大於 1.0 的比例會導致音訊播放速度較快,而小於 1.0 的比例會導致音訊播放速度較慢。 此外,頻率比率會影響語音上的音訊音調。 例如,1.0 的值對音頻沒有任何作用,而 2.0 的值則會以一個八位提升音調,而 0.5 則會以一個八位來降低。

如果呼叫 SetFrequencyRatio 以指定有效範圍以外的 Ratio 值,此方法會將頻率比率設定為最接近的有效值。 也會針對偵錯組建產生警告。

注意IXAudio2SourceVoice::GetFrequencyRatio 一律會傳回語音的實際目前頻率比率。 不過,這可能不符合最近 IXAudio2SourceVoice::SetFrequencyRatio 呼叫所設定的比率:只有在 IXAudio2SourceVoice::SetFrequencyRatio 呼叫之後執行音訊引擎時,才會變更實際比率::SetFrequencyRatio 呼叫 (或對應的 IXAudio2::CommitChanges 呼叫之後, 如果 呼叫 IXAudio2SourceVoice::SetFrequencyRatio ,則會使用延遲的作業標識碼) 。
 

平臺需求

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

規格需求

需求
目標平台 Windows
標頭 xaudio2.h

另請參閱

如何:變更語音音調

IXAudio2SourceVoice