1. Music Decoy 简介
Music Decoy 可避免每次按下“播放”键时自动打开“音乐”应用。用户可通过链接下载该应用或查看源码,也能使用“brew install music - decoy”进行安装。
2. 阻止音乐应用自动启动的原理
只要 Music Decoy 应用处于运行状态,当用户误按播放键时,系统自带的音乐应用就不会启动。这是因为该应用在后台完全不进行额外的工作,且它拥有与音乐应用相同的捆绑标识符,系统会认为音乐应用已经在运行。其捆绑标识符为“com.apple.Music”,会让系统误以为音乐应用已经在运行。
3. 配置 Music Decoy
从 v1.1 版本开始,用户可以配置 Music Decoy,使其在按下“播放”按钮时启动其他应用。例如在终端中运行“defaults write com.lowtechguys.MusicDecoy mediaAppPath /Applications/Spotify.app”(以 Spotify 为例)。若要重置配置,运行“defaults delete com.lowtechguys.MusicDecoy mediaAppPath”。
4. 音乐应用自动启动的情况
音乐应用会在以下情况自动启动:当按下键盘上的播放键,且没有其他应用正在播放音频时;当蓝牙耳机连接并发送播放命令时;当通话结束,蓝牙耳机从通话模式切换到音乐模式时。
5. 音乐应用自动启动的原因
有一个名为“rcd”(Remote Control Daemon 的缩写)的守护进程负责处理媒体键。当播放事件发生时,“rcd”会检查是否有应用正在播放音频。如果有,它会将播放命令发送给该应用;如果没有,它就会启动系统自带的音乐应用。有一种方法可以禁用该守护进程,但这也会禁用使用键盘控制媒体播放的功能。
6. 替代方案
根据 StackExchange 上的回答,有几种不同的方法可以达到相同的效果。如“launchctl unload - w /System/Library/LaunchAgents/com.apple.rcd.plist”,但会完全禁用播放按钮;“noTunes”会监听已启动的应用,并在音乐应用启动后立即将其关闭,但它在后台还是会占用少量 CPU。
7. 退出 Music Decoy 的方法
该应用没有停靠栏图标和菜单栏图标,用户需要通过以下方式之一退出它:打开“活动监视器”,找到“Music Decoy”并点击顶部的“❌”按钮;在终端中运行“killall 'Music Decoy'”。