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 调用 (之后或在相应的 IXAudio2::CommitChanges 调用之后,才会更改实际比率, 如果调用 了 IXAudio2SourceVoice::SetFrequencyRatio 且) 延迟的操作 ID。
平台要求
Windows 10 (XAudio2.9) ;Windows 8,Windows Phone 8 (XAudio 2.8) ;DirectX SDK (XAudio 2.7)要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | xaudio2.h |