WinAPI: waveOutGetPitch - 获取输出设备当前的音调设置(音高的倍数值)

本文介绍如何通过调整lpdwPitch参数来改变音频的音高,而不影响其播放速度、采样速度和播放时间。文章详细解释了该参数的组成,即高位表示整数部分而低位表示小数部分,并提供了具体的数值示例。此外还列出了waveOutGetPitch函数的调用方式及可能遇到的错误代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:
参数 lpdwPitch 虽然指向的是 4 字节的正整数, 但表示的是个小数;
两个高位表示整数部分, 两个低位表示小数部分;
$8000 表示一半, $4000 表示四分之一;
譬如: $00010000 表示 1.0, 说明音高没变; $000F8000, 表示 15.5 倍;
修改音高不会改变播放速度、采样速度和播放时间, 但不是所有设备都支持.
//声明:
waveOutGetPitch(
  hWaveOut: HWAVEOUT; {设备句柄}
  lpdwPitch: PDWORD   {存放音高值的变量的指针}
): MMRESULT;          {成功返回 0; 可能的错误值见下:}

MMSYSERR_INVALHANDLE  = 5;  {设备句柄无效}
MMSYSERR_NOTSUPPORTED = 8;  {设备不支持}
MMSYSERR_HANDLEBUSY   = 12; {设备已被另一线程使用}

 
 
 
 
 

 

 

  

//举例:


 
 
 
 
 

 

 

  

转载于:https://my.oschina.net/hermer/blog/320694

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值