【小工具】自定义键盘快捷键切换音频播放设备、快速开关切换静音(静音 快捷键)

社会 网编 2022-04-20 11:57 818 0

场景

宿舍电脑的音频设备有两个,一个耳机,一个小扬声器。一般的切换设备的操作方式,是用鼠标去点击右下方任务栏的声音图标进行切换。

鼠标切换播放设备

为了从耳机切换成扬声器,需要点击至少3下鼠标,如果在全屏状态下甚至需要切到桌面才能操作,属实不够便捷(不够酷)。在搜索引擎一番冲浪后静音快捷键,研制出了一个可以快速切换声音播放设备的方法。先看看效果展示:

演示操作

可以从上面的gif看出,鼠标没有进行任何点击,只需键盘快捷键便能快速切换音频播放设备。其中,切换播放设备的快捷键是右Alt + p,切换静音的快捷键是右Alt + 空格。

实现 安装依赖软件

本功能主要依赖两个软件,第一个是AutoHotkey,用于编写快捷键监听脚本。第二个是NirCmd,用于切换声音播放设备。请先按照指引分别下载安装这两款软件。

安装AutoHotkey

第一步,打开官网:

第二步,点击Download按钮,再选择Download Current Version

f1键和静音键怎么切换_元素无线键盘键盘上的静音键用英文代替是哪个_静音快捷键

在这里插入图片描述

在这里插入图片描述

第三步,等待下载完成后点击exe进行安装,就选第一个就好了,安装好之后点Exit

在这里插入图片描述

在这里插入图片描述

安装NirCmd

准确来说这个东西不需要安装,只需要把它下载好加到环境变量PATH里,或者和我们的脚本放在一起。

第一步,打开官网,滑动到页面最下方:

第二步,点击Download NirCmd 64-bit

在这里插入图片描述

静音快捷键_f1键和静音键怎么切换_元素无线键盘键盘上的静音键用英文代替是哪个

第三步,解压下载好的zip到一个纯英文路径

解压zip

创建快捷键脚本

在刚才解压的文件夹,右键新建->AutoHotkey Script,随便给个名字,你将得到一个.ahk文件:

新建AHK

右键它,点击Edit Script,会打开一个记事本,把下面的代码复制进去。

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
#SingleInstance, force
; 填写你的音频设备名称
devices := ["耳机", "扬声器"]
; 设置提醒图标。0x0(无图标),0x1(信息图标),0x2(警告图标),0x3(错误图标)
logo := 0x1
; 设置切换提示声。0x0(有提示声),0x10(无提示声)
voice := 0x0
cur := 0
; Menu Tray, NoIcon
ChangeDevice(devices[cur+1], logo+voice)
RAlt & p::
    cur := Mod(cur + 1, devices.Length())
    option := logo+voice
    ChangeDevice(devices[cur+1], option)
    return
RAlt & Space::
    SoundSet, -1, , mute
    return
ChangeDevice(device, option) {
    TrayTip, %device%, 当前播放设备, , %option%
    Run, nircmd.exe setdefaultsounddevice %device%
    SetTimer, HideTrayTip, 3000
}
HideTrayTip() {
    TrayTip  ; 尝试以正常的方式隐藏它.
    ; if SubStr(A_OSVersion,1,3) = "10." {
    ;     Menu Tray, NoIcon
    ;     Sleep 200  ; 可能有必要调整 sleep 的时间.
    ;     Menu Tray, Icon
    ; }
}

先不急着关闭,这时需要你修改一下这一行(第8行):

devices := ["耳机", "扬声器"]

对应你的音频设备的名字,点击右下角小喇叭可以查看(在系统声音设置里可以改名)。

静音快捷键_f1键和静音键怎么切换_元素无线键盘键盘上的静音键用英文代替是哪个

查看设备

设备名称

放在devices第一个的是默认设备,每次启动脚本都会切换成它。

修改好后,保存并关闭。

然后双击voice.ahk文件静音快捷键,会发现声音设备切换成默认设备,并显示如图通知,任务栏出现绿色H图标。

启动脚本

试试键盘的右Alt + p和右Alt + 空格吧。

原理 监听键盘

AutoHotkey可以监听任意的键盘/鼠标操作,并执行用户编写的脚本。在上文脚本里,就是监听右Alt + p和右Alt + 空格,分别执行切换播放设备和切换静音操作。实现代码对应下面这部分:

RAlt & p::
    cur := Mod(cur + 1, devices.Length())
    option := logo+voice
    ChangeDevice(devices[cur+1], option)
    return
RAlt & Space::
    SoundSet, -1, , mute
    return

然而,AutoHotkey并不支持切换设备,这时候就要借助NirCmd工具来执行切换设备的指令,对应代码中的这个函数:

ChangeDevice(device, option) {
    TrayTip, %device%, 当前播放设备, , %option%
    Run, nircmd.exe setdefaultsounddevice %device%
    SetTimer, HideTrayTip, 3000
}

其中,TrayTip是显示一条通知,如果觉得它烦人可以删掉。Run那行是执行切换操作,再下一行是等待3000毫秒关闭通知。

其他设置

在代码中,还有一些可以设置的项,例如通知的图标和提示声,修改后重启脚本即可。

; 设置提醒图标。0x0(无图标),0x1(信息图标),0x2(警告图标),0x3(错误图标)
logo := 0x1
; 设置切换提示声。0x0(有提示声),0x10(无提示声)
voice := 0x0

右键这个绿色的H图标,可以Reload修改后的脚本,也可以Exit退出监听。

启动脚本

修改快捷键

上文脚本中的快捷键是右Alt + p和右Alt + 空格,在代码中也可以修改成任意其他键盘组合,各种按键的名称请查阅文档:。

f1键和静音键怎么切换_元素无线键盘键盘上的静音键用英文代替是哪个_静音快捷键

添加nircmd到PATH(非必须)

如果希望把.ahk文件放到其他文件夹,不与nircmd.exe同个地方,那么就需要把nircmd.exe所在路径添加到系统PATH变量里。

第一步,复制解压后的文件夹路径

nircmd路径

第二步,按一下win,输入path,选择“编辑系统环境变量”

搜索path

第三步,把刚才的路径加到PATH里,按照这个顺序填

加PATH

这时打开一个cmd,输入nircmd应该会看到一个窗口弹出来,就说明配置好了PATH。

nircmd配置结果

特别鸣谢

感谢罗小威同学关于削减PATH部分的建议。

评论区