waveOutSetVolume 函数 (mmeapi.h)

waveOutSetVolume 函数设置指定波形音频输出设备的音量级别。

语法

MMRESULT waveOutSetVolume(
  HWAVEOUT hwo,
  DWORD    dwVolume
);

parameters

hwo

打开波形音频输出设备的句柄。 此参数也可以是设备标识符。

dwVolume

新卷设置。 低序字包含左声道音量设置,高序字包含右声道设置。 值 0xFFFF 表示完整音量,0x0000 值为静音。

如果设备不支持左右音量控制,则 dwVolume 的低序字将指定音量级别,高序字将被忽略。

返回值

如果成功,则返回MMSYSERR_NOERROR,否则返回错误。 可能的错误值包括以下内容。

返回代码 说明
MMSYSERR_INVALHANDLE
指定的设备句柄无效。
MMSYSERR_NODRIVER
不存在设备驱动程序。
MMSYSERR_NOMEM
无法分配或锁定内存。
MMSYSERR_NOTSUPPORTED
不支持函数。

注解

如果使用设备标识符,则 waveOutSetVolume 调用的结果将应用于设备的所有实例。 如果使用设备句柄,则结果仅适用于设备句柄引用的设备实例。

并非所有设备都支持卷更改。 若要确定设备是否支持音量控制,请使用 WAVECAPS_VOLUME 标志测试 waveOutGetDevCaps 函数 (填充的 WAVEOUTCAPS 结构的 dwSupport 成员) 。 若要确定设备是否支持左右通道的音量控制,请使用 WAVECAPS_LRVOLUME 标志。

大多数设备不支持完整的 16 位卷级控制,并且不会使用所请求卷设置的最小有效位。 例如,如果设备支持 4 位音量控制,则 0x4000、0x4FFF 和 0x43BE 的值都将截断为0x4000。 waveOutGetVolume 函数返回使用 waveOutSetVolume 设置的完整 16 位设置。

卷设置以对数方式解释。 这意味着将卷级别从 0x5000 增加到 0x6000 时,感知到的音量增加与从 0x4000 增加到 0x5000 相同。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 mmeapi.h (包括 Windows.h)
Library Winmm.lib
DLL Winmm.dll

另请参阅

波形音频

波形函数