音频设备快速切换工具
AudioSwitcher
欢迎使用 AudioSwitcher!这是一款专为 Windows 系统设计的音频设备快速切换工具,支持同步切换输入(麦克风)和输出(扬声器)设备,帮你告别繁琐的系统设置,一键完成音频设备的快速切换。
一、工具简介
AudioSwitcher 解决了 Windows 系统切换音频设备步骤繁琐的痛点,特别适合经常在「音箱 + 内置麦」、「耳机 + 耳机麦」、「HDMI 显示器音频」等不同设备组合之间切换的用户,无论是办公开会、游戏娱乐还是日常使用,都能帮你大幅提升效率。
核心优势:
- ✅ 同步切换输入输出,不用分别设置麦克风和扬声器
- ✅ 支持多种使用模式:轻量一键切换、图形界面、后台常驻
- ✅ 全局热键支持,任意窗口下都能快速切换
- ✅ 系统托盘支持,最小化到后台不占空间
- ✅ 切换通知提示,实时确认切换结果
二、系统要求
- 操作系统:Windows 10 / Windows 11(依赖 Windows 音频管理接口)
- 运行环境:Python 3.8 及以上版本(如需打包为独立 exe 可参考高级技巧)
- 所有文件请放在同一个文件夹中,不要随意移动或删除
SoundVolumeView.exe
三、文件说明
下载解压后,你会看到如下文件结构,每个文件的作用如下:
AudioSwitcher1/
├── audio_config.json # 你的个性化配置文件(首次运行后生成)
├── audio_devices.csv # 你的电脑音频设备列表(首次运行后生成)
├── main.py # 程序主入口,启动脚本
├── SoundVolumeView.exe # 系统音频管理工具(核心依赖,请勿删除)
└── modules/ # 程序功能模块,无需手动修改
├── config_gen.py
├── config_loader.py
├── device_query.py
├── device_switch.py
├── hotkey_mgr.py
├── notification_mgr.py
└── tray_mgr.py
四、快速上手
4.1 安装运行依赖
首次使用前,需要先安装程序依赖的 Python 库。打开命令提示符(CMD)或 PowerShell,执行以下命令:
pip install customtkinter pystray pillow keyboard win10toast
如果你使用的是虚拟环境,请先激活对应的环境再执行安装。
4.2 首次运行初始化
- 在程序文件夹中,按住 Shift 键右键点击空白处,选择「在此处打开终端」
- 输入以下命令启动程序,完成首次初始化:
python main.py
- 程序会自动扫描你电脑上的所有音频设备,生成两个文件:
audio_devices.csv:你的电脑所有音频硬件的列表audio_config.json:配置模板,用来设置你自己的设备组
- 命令行提示「初次运行配置已完成,按下回车关闭命令行窗口」,按回车关闭窗口即可。
4.3 配置你的设备组(关键步骤)
这是最核心的一步,你需要告诉程序你有哪些常用的设备组合:
- 查看你的设备列表 打开文件夹里的
audio_devices.csv(用记事本、Excel 或者 VSCode 都可以打开),你会看到类似这样的内容:
| Type | Direction | Device Name | Default | Device State | Item ID |
|---|---|---|---|---|---|
| Device | Render | 扬声器 (Realtek) | Render | Active | 123... |
| Device | Capture | 麦克风 (Realtek) | Active | 456... |
|
| Device | Render | USB Audio Device | Active | 789... |
|
| Device | Capture | 麦克风 (USB Audio) | Capture | Active | 012... |
1. **Direction 列说明**:
* `Render`:输出设备(就是你听声音的设备,比如音箱、耳机)
* `Capture`:输入设备(就是你的麦克风,录音用的)
1. **Item ID 列**:每个设备的唯一标识,我们需要复制这个 ID 来配置,它是永久稳定的,不会因为系统改名而出错。
- 编辑配置文件 打开文件夹里的
audio_config.json,找到设备组部分,把你刚才找到的设备 ID 填进去:
"设备组": [
{
"显示名": "音箱+内置麦",
"输出设备ID": "这里填你音箱的Item ID",
"输入设备ID": "这里填你内置麦克风的Item ID",
"快捷键": "ctrl+alt+1"
},
{
"显示名": "耳机+耳机麦",
"输出设备ID": "这里填你耳机的Item ID",
"输入设备ID": "这里填你耳机麦克风的Item ID",
"快捷键": "ctrl+alt+2"
}
]
你可以根据自己的需求添加更多设备组,比如 HDMI 显示器的音频,格式和上面保持一致即可。 如果你只想切换输出设备,麦克风一直用同一个,那所有组的「输入设备 ID」都填同一个麦克风的 ID 就行。
- 可选:自定义快捷键 你可以修改每个设备组的快捷键,也可以修改循环切换的快捷键(默认是
ctrl+alt+right,也就是 Ctrl+Alt + 右箭头),只要是合法的键盘组合都可以,比如ctrl+shift+a之类的。
五、核心功能说明
配置完成后,你可以根据自己的需求选择不同的使用模式:
5.1 轻量一键切换(最快的方式)
如果你不需要常驻后台,只是想快速切换,这是最推荐的方式:
- 把配置文件里的这几个开关都改成
false:
"enable_tray": false,
"enable_hotkey": false,
"enable_gui": false,
- 之后每次你想切换设备,只要双击运行
main.py(或者在终端执行python main.py),程序就会自动循环切换到下一个设备组,切换完成后自动退出,整个过程不到 1 秒! - 你还可以给
main.py创建一个桌面快捷方式,双击就能切换,非常方便。
5.2 图形控制面板(直观易用)
如果你想要可视化的操作界面,可以开启 GUI 模式:
- 把配置里的
"enable_gui": true - 运行
main.py,就会打开如下的控制面板窗口:- 顶部显示当前正在使用的设备
- 中间是设备切换按钮,点击就能直接切换到对应的设备
- 下方是功能开关,可以随时开启 / 关闭托盘、通知、热键功能
5.3 系统托盘常驻(后台待命)
开启托盘功能后,程序会最小化到任务栏右下角,随时待命:
- 把配置里的
"enable_tray": true - 启动程序后,任务栏右下角会出现一个小图标
- 右键点击图标,就会弹出菜单:
- 打开控制面板:打开图形设置窗口
- 你的设备组:点击就能直接切换到对应的设备
- 退出:关闭程序
5.4 全局快捷键(盲操切换)
开启热键功能后,不管你在玩游戏、开会还是做其他事,都可以按快捷键快速切换:
- 把配置里的
"enable_hotkey": true - 可用的快捷键:
- 循环切换热键:默认
Ctrl + Alt + 右箭头,按一下自动切换到下一个设备 - 单个设备热键:比如
Ctrl+Alt+1直接切到第一个设备组,Ctrl+Alt+2直接切到第二个,不用循环,一步到位。
- 循环切换热键:默认
5.5 切换通知
每次切换设备后,右下角会自动弹出一个系统通知,告诉你已经切换到哪个设备了,3 秒后自动消失,让你随时确认切换结果,不用担心切错。
六、配置文件详解
audio_config.json 是程序的核心配置文件,所有字段说明如下:
| 字段 | 说明 | 默认值 |
|---|---|---|
regen_config |
是否需要重新扫描设备列表,新增设备时改成 true 运行一次即可 |
false |
enable_tray |
是否开启系统托盘常驻 | false |
enable_hotkey |
是否开启全局热键 | false |
hotkey_cycle |
循环切换的快捷键 | ctrl+alt+right |
enable_gui |
是否开启图形控制面板 | false |
enable_notification |
是否开启切换通知 | true |
设备组 |
你的设备组合列表,每个组包含显示名、输出 ID、输入 ID、快捷键 | 模板示例 |
七、常见问题与排查
1. 热键不生效怎么办?
- 检查热键是否和其他软件的热键冲突了,比如微信、QQ 的快捷键
- 如果你的其他程序是用管理员权限运行的,普通权限的热键可能无法在管理员窗口生效,尝试用管理员权限启动 AudioSwitcher
- 检查热键的格式是否正确,比如
ctrl+alt+1是正确的,不要有多余的空格
2. 切换设备没反应?
- 检查
SoundVolumeView.exe是否被杀毒软件误删了,这个是 NirSoft 的合法工具,有些杀毒会误报,去隔离区恢复并添加信任即可 - 检查你的
Item ID是否填错了,打开audio_devices.csv确认一下,程序会自动帮你去除空格和大小写,但是还是要保证 ID 正确 - 确认你的设备是连接好的,没有被拔掉
3. 新增了音频设备怎么更新?
- 打开
audio_config.json,把"regen_config": true - 运行一次
main.py,程序会自动重新扫描你的设备,更新audio_devices.csv - 然后你就可以在配置里添加新的设备组了
4. 通知弹不出来?
- 检查你的 Windows 通知设置,是否允许 Python 或者该程序弹出通知
- 通知功能不影响核心的切换功能,就算不弹,设备也已经切换成功了
5. 能不能只切换输出,不切换麦克风?
当然可以!把所有设备组的「输入设备 ID」都填成你一直用的那个麦克风的 ID,这样切换的时候输入设备就不会变,只会切换输出。
八、高级技巧
打包为独立 EXE
如果你不想每次都装 Python 环境,可以把程序打包成独立的 exe 文件,这样别人也可以直接用:
- 安装 pyinstaller:
pip install pyinstaller
- 执行打包命令:
pyinstaller main.py --onefile --noconsole --icon=icon.ico
- 打包完成后,把生成的
dist/main.exe和SoundVolumeView.exe放在同一个文件夹里就可以直接运行了,不需要 Python 环境。
开机自启
如果你想让程序开机就自动启动(托盘常驻模式),可以给 main.py 创建一个快捷方式,然后把快捷方式放到 Windows 的启动文件夹里:
- 按 Win+R 输入
shell:startup就能打开启动文件夹 - 把快捷方式拖进去,下次开机就会自动启动了
如果在使用过程中遇到其他问题,可以检查命令行的报错信息,或者根据日志排查问题,祝你使用愉快!
评论
暂无评论,来写第一条吧
