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.