SoundGet

AutoHotkey

SoundGet

从音频设备中获取各种设置(主静音、主音量等)。

SoundGet, OutputVar [, ComponentType, ControlType, DeviceNumber]

参数

OutputVar

用来保存获取的设置的变量名, 可以为一个介于 0 和 100 (包含的) 之间的浮点数或单词 ON 或 OFF (仅用于 控制器类型 为 ONOFF, MUTE, MONO, LOUDNESS, STEREOENH 以及 BASSBOOST 的时候). 如果在获取设置时遇到问题, 则此变量会被置空. 浮点数的格式 (例如它的小数位数) 由 SetFormat 决定.

ComponentType

如果省略或为空, 则它默认为单词 MASTER. 否则, 它可以为下列单词的其中一个: MASTER (与 SPEAKERS 含义相同), DIGITAL, LINE, MICROPHONE, SYNTH, CD, TELEPHONE, PCSPEAKER, WAVE, AUX, ANALOG, HEADPHONES 或 N/A. 如果音频设备缺少指定的 组件类型, 则 ErrorLevel 会表明此问题.

在某些混音器中标为 Auxiliary 的组件可能需要作为 ANALOG 而不是 AUX 进行访问.

如果一个设备含有同种 组件类型 的多个实例 (例如两个 LINE 类型), 那么通常首个包含播放设置, 第二个包含录制设置. 要访问首个实例外的其他实例, 请在此参数后加上冒号和数字. 例如:Analog:2 表示 analog 组件的第二个实例。

ControlType

如果省略或为空, 则它默认为 VOLUME. 否则, 它可以为下列单词的其中一个: VOLUME (或 VOL), ONOFF, MUTE, MONO, LOUDNESS, STEREOENH, BASSBOOST, PAN, QSOUNDPAN, BASS, TREBLE, EQUALIZER 或表示有效的控制器类型数字 (请参阅 声卡分析脚本). 如果指定的 组件类型 没有指定的 控制器类型, 则 ErrorLevel 会表明此问题.

注:音频设备通常仅支持 VOLUME(或VOL)和 MUTE,不过根据 Windows 和音频设备的不同还可能支持其他。

DeviceNumber

介于 1 和支持设备总数之间的数字。如果省略此参数,则它默认为 1(首个音频设备),在 Windows Vista 及更高版本中则为系统默认的录制和播放设备。此参数可以为 表达式. 声卡分析脚本有助于确定要使用的编号。

ErrorLevel

[v1.1.04+] 此命令失败时会抛出异常. 想了解更多信息, 请参阅 运行时错误.

命令执行成功时 ErrorLevel 被设置为 0. 否则, 它会被设置为下列短语的其中一个:

Invalid Control Type or Component Type
Can't Open Specified Mixer
Mixer Doesn't Support This Component Type
Mixer Doesn't Have That Many of That Component Type
Component Doesn't Support This Control Type
Can't Get Current Setting

备注

在 v1.1.10 中添加了对 Windows Vista 及更高版本的支持。

要找出安装在系统上的音频设备 (混音器) 的功能 (例如可用的组件类型和控制器类型), 请运行 声卡分析脚本.

与音频设备相关的更多功能和细微控制,考虑使用 VA 库

使用 SoundSet 来改变设置.

相关

SoundSet, SoundGetWaveVolume, SoundSetWaveVolume, SoundPlay

示例

SoundGet, master_volume
MsgBox, Master volume is %master_volume% percent.

SoundGet, master_mute, , mute
MsgBox, Master Mute is currently %master_mute%.

SoundGet, bass_level, Master, bass
if ErrorLevel
    MsgBox, Error Description: %ErrorLevel%
else
    MsgBox, The BASS level for MASTER is %bass_level% percent.

SoundGet, microphone_mute, Microphone, mute
if microphone_mute = Off
    MsgBox, The microphone is not muted.