每次按播放键都弹出音乐App?有人写了三行代码搞定它
一个持续了十几年的小麻烦
如果你的 Mac 上装过 Spotify、网易云音乐或者任何第三方播放器,你大概经历过这个场景:你打开电脑,戴上耳机,按下键盘上的播放键,结果跳出来的是苹果自带的音乐 App——不管你上次用的是哪个播放器。
这不是什么惊天大 Bug。但它就像袜子上的一个小洞,不会让你摔倒,但每次穿上都会烦一下。而且它已经烦了用户十几年。
苹果的音乐 App 在 macOS 上有一个非常特殊的优先级:它把自己注册为系统多媒体按键的默认响应者。每当你按下键盘上的播放 / 暂停键,macOS 会先问问音乐 App 要不要处理。而音乐 App 的回答永远是”要”——哪怕你三个月没打开过它,它也要弹出来亮个相。
一个只有十几 KB 的解决方案
有个叫 Low Tech Guys 的小团队,做了一个叫 Music Decoy 的免费工具。它的原理简单到离谱:它把自己伪装成一个假的播放器,假装接管了系统的多媒体按键,然后——什么都不做。它的全部代码只有不到 200 行 Swift。
当系统想把播放按键交给音乐 App 时,Music Decoy 先一步抢答:“我来。“然后安静地忽略这个信号。音乐 App 发现自己没有被叫醒,就继续沉睡。
这个小工具甚至没有 GUI 界面——安装之后它就默默运行,连任务栏图标都没有。你想退出它的话需要用 terminal 敲一行命令。这种”极简到极致”的设计,恰恰说明了开发者的态度:这个工具不是拿来玩的,它是拿来消失的。
为什么苹果不改?
有趣的是,这个问题在 macOS 社区已经被讨论了至少八年。StackExchange 上相关的帖子积累了上千个回答,从修改 plist 文件到用脚本杀掉音乐进程,各种奇技淫巧层出不穷。
苹果当然知道这件事。但对他们来说,音乐 App 的主动唤醒不是一个 Bug,它是一个功能。Apple Music 是苹果生态的付费服务,每次你无意中打开音乐 App,都可能看到”免费试用三个月”的广告。这个小小的”系统劫持”,本质上是一个沉默的获客渠道。
但这对那些只用 Mac 工作、不听 Apple Music 的用户来说,就变成了一种持续十几年的软性骚扰——你每次按下播放键,都要手动关掉一个你根本没打算打开的窗口。
低技术,高效率
Music Decoy 选择了 macOS 平台上最”笨”的实现方式。它没有注入代码,没有修改系统文件,没有用私有 API。它只是利用了一个公开的、系统官方支持的机制——媒体播控中心(MediaRemote)的接管权限。苹果自己定义了这套规则:谁先注册谁先得。Music Decoy 只是比音乐 App 早到了零点零几秒。
这种”利用规则而不是对抗规则”的做法,是这个项目最漂亮的地方。开发者没有抱怨,没有写公开信请愿,他们只是写了一个 200 行的程序,安静地解决了自己的问题。然后发现,这个世界上有四十几万人——以及 529 个在 HN 上给它点赞的人——跟他们有同样的烦恼。
来源:Hacker News | lowtechguys.com/musicdecoy
