音频设备快速切换工具

2024年6月2日 兴趣使然 13 分钟阅读 2 次阅读

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 首次运行初始化

  1. 在程序文件夹中,按住 Shift 键右键点击空白处,选择「在此处打开终端」
  2. 输入以下命令启动程序,完成首次初始化:
python main.py
  1. 程序会自动扫描你电脑上的所有音频设备,生成两个文件:
    1. audio_devices.csv:你的电脑所有音频硬件的列表
    2. audio_config.json:配置模板,用来设置你自己的设备组
  2. 命令行提示「初次运行配置已完成,按下回车关闭命令行窗口」,按回车关闭窗口即可。

4.3 配置你的设备组(关键步骤)

这是最核心的一步,你需要告诉程序你有哪些常用的设备组合:

  1. 查看你的设备列表 打开文件夹里的 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 来配置,它是永久稳定的,不会因为系统改名而出错。
  1. 编辑配置文件 打开文件夹里的 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 就行。

  1. 可选:自定义快捷键 你可以修改每个设备组的快捷键,也可以修改循环切换的快捷键(默认是 ctrl+alt+right,也就是 Ctrl+Alt + 右箭头),只要是合法的键盘组合都可以,比如 ctrl+shift+a 之类的。

五、核心功能说明

配置完成后,你可以根据自己的需求选择不同的使用模式:

5.1 轻量一键切换(最快的方式)

如果你不需要常驻后台,只是想快速切换,这是最推荐的方式:

  1. 把配置文件里的这几个开关都改成 false
"enable_tray": false,
"enable_hotkey": false,
"enable_gui": false,
  1. 之后每次你想切换设备,只要双击运行 main.py(或者在终端执行 python main.py),程序就会自动循环切换到下一个设备组,切换完成后自动退出,整个过程不到 1 秒!
  2. 你还可以给 main.py 创建一个桌面快捷方式,双击就能切换,非常方便。

5.2 图形控制面板(直观易用)

如果你想要可视化的操作界面,可以开启 GUI 模式:

  1. 把配置里的 "enable_gui": true
  2. 运行 main.py,就会打开如下的控制面板窗口:
    1. 顶部显示当前正在使用的设备
    2. 中间是设备切换按钮,点击就能直接切换到对应的设备
    3. 下方是功能开关,可以随时开启 / 关闭托盘、通知、热键功能

5.3 系统托盘常驻(后台待命)

开启托盘功能后,程序会最小化到任务栏右下角,随时待命:

  1. 把配置里的 "enable_tray": true
  2. 启动程序后,任务栏右下角会出现一个小图标
  3. 右键点击图标,就会弹出菜单:
    1. 打开控制面板:打开图形设置窗口
    2. 你的设备组:点击就能直接切换到对应的设备
    3. 退出:关闭程序

5.4 全局快捷键(盲操切换)

开启热键功能后,不管你在玩游戏、开会还是做其他事,都可以按快捷键快速切换:

  1. 把配置里的 "enable_hotkey": true
  2. 可用的快捷键:
    1. 循环切换热键:默认 Ctrl + Alt + 右箭头,按一下自动切换到下一个设备
    2. 单个设备热键:比如 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. 新增了音频设备怎么更新?

  1. 打开 audio_config.json,把 "regen_config": true
  2. 运行一次 main.py,程序会自动重新扫描你的设备,更新 audio_devices.csv
  3. 然后你就可以在配置里添加新的设备组了

4. 通知弹不出来?

  • 检查你的 Windows 通知设置,是否允许 Python 或者该程序弹出通知
  • 通知功能不影响核心的切换功能,就算不弹,设备也已经切换成功了

5. 能不能只切换输出,不切换麦克风?

当然可以!把所有设备组的「输入设备 ID」都填成你一直用的那个麦克风的 ID,这样切换的时候输入设备就不会变,只会切换输出。


八、高级技巧

打包为独立 EXE

如果你不想每次都装 Python 环境,可以把程序打包成独立的 exe 文件,这样别人也可以直接用:

  1. 安装 pyinstaller:
pip install pyinstaller
  1. 执行打包命令:
pyinstaller main.py --onefile --noconsole --icon=icon.ico
  1. 打包完成后,把生成的 dist/main.exeSoundVolumeView.exe 放在同一个文件夹里就可以直接运行了,不需要 Python 环境。

开机自启

如果你想让程序开机就自动启动(托盘常驻模式),可以给 main.py 创建一个快捷方式,然后把快捷方式放到 Windows 的启动文件夹里:

  • 按 Win+R 输入 shell:startup 就能打开启动文件夹
  • 把快捷方式拖进去,下次开机就会自动启动了

如果在使用过程中遇到其他问题,可以检查命令行的报错信息,或者根据日志排查问题,祝你使用愉快!

AudioSwitcher1.zip - 蓝奏云

最后更新:2026年7月3日CC BY-NC-SA 4.0

评论

暂无评论,来写第一条吧

© 2026 My Blog. Built with Nuxt.js + FastAPI.