更改音调和播放速率

[与此页面关联的功能 波形音频是一项旧功能。 它已被 WASAPI音频图取代WASAPI音频图已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用 WASAPI音频图 ,而不是 波形音频。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

某些波形音频输出设备可能会改变波形音频数据的音调和播放速率。 并非所有波形音频设备都支持音调和播放速率更改。 有关如何确定特定波形音频设备是否支持音调和播放速率更改的信息,请参阅 设备和数据类型

更改音调和播放速率之间的差异如下:

  • 更改播放速率由设备驱动程序执行,不需要专用硬件。 采样率不会更改,但驱动程序通过跳过或合成样本进行内插。 例如,如果播放速率更改了 2,驱动程序将跳过其他每个样本。
  • 更改音调需要专用硬件。 播放速率和采样率不会更改。

Windows 提供以下函数来查询和设置波形音频音调和播放速率。

函数 描述
waveOutGetPitch 检索指定波形音频输出设备的音调。
waveOutGetPlaybackRate 检索指定波形音频输出设备的播放速率。
waveOutSetPitch 设置指定波形音频输出设备的音调。
waveOutSetPlaybackRate 设置指定波形音频输出设备的播放速率。

 

音调和播放速率由一个因子更改,该系数由固定点数打包成双字值。 高 16 位指定数字的整数部分;低 16 位指定小数部分。 例如,值 1.5 表示为 0x00018000L。 值 0.75 表示为 0x0000C000L。 值 1.0 (0x00010000) 表示音调或播放速率保持不变。