# 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 及更高版本中则为系统默认的录制和播放设备. 此参数可以为表达式. 声卡分析脚本有助于确定要使用的编号.

## 错误处理

[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.

dftg