midiOutSetVolume 函数 (mmeapi.h)
midiOutSetVolume 函数设置 MIDI 输出设备的音量。
语法
MMRESULT midiOutSetVolume(
HMIDIOUT hmo,
DWORD dwVolume
);
参数
hmo
打开的 MIDI 输出设备的句柄。 此参数还可以包含 MIDI 流的句柄,只要它被强制转换为 HMIDIOUT 即可。 此参数也可以是设备标识符。
dwVolume
新卷设置。 低序字包含左声道音量设置,高序字包含右声道设置。 值 0xFFFF 表示完整音量,值 0x0000 表示静音。
如果设备不支持左右音量控制,则 dwVolume 的低序字将指定单声道音量级别,高序字将被忽略。
返回值
如果成功,则返回MMSYSERR_NOERROR,否则返回错误。 可能的错误值包括以下内容。
返回代码 | 说明 |
---|---|
|
指定的设备句柄无效。 |
|
系统无法分配或锁定内存。 |
|
不支持 函数。 |
注解
如果使用设备标识符,则 midiOutSetVolume 调用的结果将应用于设备的所有实例。 如果使用设备句柄,则结果仅适用于设备句柄引用的设备实例。
并非所有设备都支持卷更改。 通过使用 midiOutGetDevCaps 函数和 MIDICAPS_VOLUME 标志查询设备,可以确定设备是否支持该设备。
还可以通过使用 midiOutGetDevCaps 函数和 MIDICAPS_LRVOLUME 标志查询设备,来确定设备是否支持左右通道的音量控制。
不支持完全 16 位卷级控制的设备使用所请求卷设置的高阶位。 例如,支持 4 位音量控制的设备为以下卷级别值生成相同的音量设置:0x4000、0x43be和0x4fff。 midiOutGetVolume 函数返回由 midiOutSetVolume 设置的完整 16 位值,无论设备的功能如何。
卷设置以对数方式解释。 这意味着,将音量级别从 0x5000 增加到 0x6000 时,感知到的音量增加与从 0x4000 增加到 0x5000 相同。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | mmeapi.h (包括 Windows.h) |
Library | Winmm.lib |
DLL | Winmm.dll |