Music Decoy: 停止 macOS 上的 Apple Music 自動啟動

Music Decoy 解決了 macOS 使用者常見的挫折感:當按下鍵盤上的播放鍵或由藍牙耳機觸發時,Apple Music App 會自動啟動。這種行為是硬編碼在系統中的,無法透過標準設定來停用。

Music Decoy 的運作原理

Music Decoy 透過充當「佔位符」程序來防止 Apple Music App 啟動。它使用與官方 Apple Music App 相同的 bundle identifier,藉此欺騙系統,讓系統認為 Music App 已經在運行中。因為它是一個具有該 identifier 的運行中程序,macOS 不會嘗試啟動實際的 Music 應用程式。

正如一位社群成員所指出的,這是一個低程式碼工程解決方案,需要對 macOS 如何處理 bundle identifiers 和媒體事件有深入的理解:

The app does absolutely no work in the background. It works by simply existing as a running process, thanks to having the same bundle identifier as the Music app.

Apple Music 的觸發事件

Apple Music 通常在以下條件下自動啟動:

  • 鍵盤輸入:當目前沒有其他音訊應用程式正在活動時,按下播放鍵。
  • 藍牙連接:當藍牙耳機連接並發送播放指令時。
  • 通話轉換:當藍牙耳機在結束電話通話後,從通話模式切換到音樂模式時。

設定與使用

重定向播放鍵

自從 1.1 版本起,Music Decoy 允許使用者配置不同的應用程式,以便在按下播放鍵時啟動。例如,若要將播放鍵重定向到啟動 Spotify,請在 Terminal 中執行以下指令:

defaults write com.lowtechguys.MusicDecoy mediaAppPath /Applications/Spotify.app

若要將此設定重置為預設值,請使用:

defaults delete com.lowtechguys.MusicDecoy mediaAppPath

管理應用程式

由於 Music Decoy 沒有 Dock 圖示或選單列圖示,必須透過系統工具來管理:

  • Activity Monitor:找到 "Music Decoy" 並使用停止按鈕來退出應用程式。
  • Terminal:執行 killall 'Music Decoy' 以終止程序。

防止自動啟動的其他替代方案

對於不想使用第三方工具的使用者,有幾種替代方案:

  • noTunes:一個類似的應用程式,會監控 Music App 的啟動並立即終止該程序。雖然有效,但它會在背景使用少量的 CPU。
  • 停用遠端控制守護程序 (rcd):使用者可以執行 launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist。然而,這會完全停用整個系統中播放鍵的功能。
  • 權限修改:有些使用者建議使用 sudo chmod -x /Applications/Music.app 來移除應用程式包中的執行權限。
  • 資料庫鎖定:鎖定 ~/Music/Music 資料夾以防止應用程式啟動。

社群對 macOS 媒體控制的看法

使用者對於被「強迫」進入 Apple Music 生態系統表示了極大的挫折感。一位使用者強調了這種行為在專業場合中的危險性:

I use my MacBook to run my (musical) keyboard rig for live performances... if I were to accidentally hit the button in the middle of a set, and it decides to default to whatever interface is connected to the P.A. system, then now I've just started blasting some random song at full volume to everyone in the venue.

其他使用者將這種行為比作早期的 Microsoft 反壟斷案,稱其為侵入性作業系統供應商行為的範例,這會干擾使用者的預設工作流程,特別是對於那些維護本地數位音樂資料庫而非使用串流服務的人來說。

Sources