惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
人人都是产品经理
人人都是产品经理
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
GbyAI
GbyAI
博客园 - 司徒正美
美团技术团队
Vercel News
Vercel News
IT之家
IT之家
U
Unit 42
Y
Y Combinator Blog
罗磊的独立博客
Microsoft Security Blog
Microsoft Security Blog
MongoDB | Blog
MongoDB | Blog
Jina AI
Jina AI
V
Visual Studio Blog
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
MyScale Blog
MyScale Blog
博客园 - 叶小钗
A
About on SuperTechFans
WordPress大学
WordPress大学
Hugging Face - Blog
Hugging Face - Blog
B
Blog RSS Feed

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
一日一技 | 用快捷指令一键切换 Mac 音频输出设备 - 少数派
2024-02-21 · via 少数派

大家好,我是 NowScott。

原因

之前在使用 Windows 电脑时,由于经常需要把声音输出在音箱和耳机之间频繁切换,就找到了一个软件来实现一键切换(鼠标侧键映射到快捷键上)音频输出设备,但是换到 Mac 上暂时没发现一个好用的实现这个功能的软件,应该有吧,实际上是我没太仔细找,想着用快捷指令也能很好地实现,就自己写了一个快捷指令来实现这个功能。

原理部分

SwitchAudioSource 是一个在 macOS 系统上运行的命令行工具,用于管理系统的音频输入和输出设备。通过这个工具,用户可以在不打开系统偏好设置的情况下,快速而方便地切换音频设备,这也是本文主要使用的工具。

Mac 上的快捷指令可以用来调用 shell 脚本,同时支持快捷键对于指令的调用,因此我只需要把音频切换的代码放在快捷指令的 shell 脚本中,就可以实现使用快捷键来切换音频。

代码部分

代码部分如下,相信学过一些编程的人就可以轻松看懂,如果有什么问题可以评论区指出,大家共同进步!

#!/bin/bash

# 设置环境变量
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/homebrew/Cellar/switchaudio-osx/1.2.2:$PATH

# 获取全部音频设备的列表
available_devices=$(SwitchAudioSource -a -t output)

# 定义音频设备列表
devices=("AirPods Max" "Mac mini扬声器")

# 获取当前音频设备
current_device=$(SwitchAudioSource -c)

# 查找当前设备在列表中的索引
current_index=-1
for i in "${!devices[@]}"; do
    if [ "${devices[i]}" == "$current_device" ]; then
        current_index=$i
        break
    fi
done

# 切换到下一个设备
next_index=$(( (current_index + 1) % ${#devices[@]} ))
next_device="${devices[next_index]}"

# 循环直到找到一个可用的设备
while true; do
    # 检查下一个设备是否在可用设备列表中
    if echo "$available_devices" | grep -q "$next_device"; then
        # 检查是否已经循环到了当前设备
        if [ "$next_device" != "$current_device" ]; then
            # 切换设备
            SwitchAudioSource -s "$next_device" >/dev/null
            echo "已切换设备到 $next_device"
            break
        else
            echo "切换失败,暂无其他可用设备"
            break
        fi
    fi
    
    # 尝试下一个设备
    next_index=$(( (next_index + 1) % ${#devices[@]} ))
    next_device="${devices[next_index]}"
done

其中 devices=("AirPods Max" "Mac mini扬声器") 要将括号中的内容换成你的音频设备,可以在终端中输入如下代码来获取

SwitchAudioSource -a -t output

当然在此之前要确保你已经安装了 SwitchAudioSource。

要安装 SwitchAudioSource,您可以使用 Homebrew 工具来进行安装。

首先,确保您已经安装了 Homebrew。如果您还没有安装 Homebrew,可以在终端中输入以下命令进行安装:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 

安装完成后,可以使用以下命令来安装 SwitchAudioSource:

 brew install switchaudio-osx

使用

下面是我分享的快捷指令 iCloud 链接,你可以点击链接获取捷径或者跟着我用以下几个步骤来创建一个自己的切换音频的快捷指令

🔗 链接:https://www.icloud.com/shortcuts/2d1a8f9c4b054775906e6374436156cd

⚠️ 注意:使用链接添加是不会自动添加快捷键的,同时还需要修改自己的音频设备名称到代码中。

创建步骤

1. 点击 + 创建新的快捷指令:

2. 搜索shell,将运行shell脚本拖进来,接着修改一下快捷指令的名称:

3. 复制前文代码到其中,并将下面的 shell 改为 bash:

4. 修改设备列表为你的音频输出设备:

5. 接下来添加键盘快捷键,我这里设置的是 Fn + control + F10:

6. 如果你需要切换后通知一下,那么可以在后面添加一个通知或者提醒(管理员身份运行并不重要,我只是顺手点上了):

这样就实现了这个快捷指令的制作,如果有需要可以把鼠标侧键绑定为刚才设置的快捷键,就能实现一键切换音频输出了。

结尾

如果你通过我的文章有多学到一点知识,那我的目的就达成了。

如果发现本文有什么错误可以在评论区发出来,我会虚心接受并及时改正。

> 关注 少数派公众号,解锁全新阅读体验 📰

> 实用、好用的 正版软件,少数派为你呈现 🚀