QQ 音乐 Mac 控制
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_4f6c1333/qq-music-mac-control。
技能介绍
要解决什么问题
在 Mac 上写代码或开会时,你往往希望用一句话让助手切歌、暂停或调音量,而不是切到 QQ 音乐窗口点控件。常见做法依赖 AppleScript 或 Accessibility(辅助功能) 权限,审批麻烦,也容易因客户端 UI 变化而失效。
本技能面向 本机 QQ 音乐客户端(/Applications/QQMusic.app),把「播放 / 暂停、上一首 / 下一首、随机一首、音量加减、是否在跑」收敛成一组可被 Agent 调用的命令。
技能如何工作
实现上走 macOS 私有框架 MediaRemote:通过 Python 标准库里的 ctypes 调用 MRMediaRemoteSendCommand,向系统媒体层发送控制,而不是模拟点击界面。
文档中给出的命令常量包括:Play=0、Pause=1、Toggle=2、Stop=3、Next=4、Previous=5、VolUp=6、VolDown=7。用户侧说法会映射到脚本子命令,例如:
- 播放 / 暂停:
play(切换播放状态) - 切歌:
next、prev - 随机:
random(内部会随机跳转 1~5 次再播放) - 音量:
volume-up、volume-down - 状态:
status;必要时可用launch拉起客户端
脚本只用 Python 3 标准库(ctypes、subprocess),不额外装依赖。技能装在用户级目录 ~/.workbuddy/skills/,各项目共用;多台 Mac 需各自安装,各控本机 QQ 音乐。
适用边界与注意点
- 平台:仅 macOS;依赖 MediaRemote,与 QQ 音乐作为当前 Now Playing 应用接收命令的前提一致。
- 权限:优势是不需要 Accessibility、也不需要 AppleScript 自动化权限;但仍需本机已安装 QQ 音乐,首次使用可能会自动启动应用。
- 随机播放:
random是「随机跳几次再播」,不等同于打开 QQ 音乐里的「随机播放模式」开关。 - 若系统里另有其它 App 占着 Now Playing,实际受控对象可能不是 QQ 音乐,需要先让 QQ 音乐成为正在播放的前台媒体源。
使用场景
- 在 Mac 上写代码或看文档时后台用 QQ 音乐听歌,需要暂停或下一首又不想 ⌘+Tab 切到播放器窗口。
- 线上会议或录屏前,本机 QQ 音乐还在播,需要快速执行「暂停」或「音量小一点」避免麦克风拾音。
- 对助手说「放首歌」「随机播放一首」,由 Agent 调用 `play` / `random` 驱动本机 QQ 音乐开始播放。
- 切换开发机或重装系统后,先用「QQ 音乐在运行吗」触发 `status`,确认客户端状态再切歌或调音量。
适合人员
- 在 macOS 上长期用 QQ 音乐当背景音的工程师,希望用对话控播但不愿开 Accessibility 或 AppleScript 自动化权限。
- 经常远程开会、本机仍放音乐的咨询/设计/产品同学,需要一句话暂停或调音量而不是手动找窗口。
- 已在每台 Mac 安装 WorkBuddy 技能目录的用户,要在所有项目里统一用自然语言控制本机 `/Applications/QQMusic.app`。
- 用 Python 维护本地自动化脚本的 Mac 用户,偏好仅标准库 `ctypes`、无额外依赖的媒体控制方案。