我可以使用媒体键来控制 MPD 吗?

我可以使用媒体键来控制 MPD 吗?

我可以让 MacBook 上的媒体键(播放/暂停、跳过)按钮控制 MPD,而不是 iTunes 吗?

另外,我可以让苹果遥控器不打开 iTunes 吗?目前,我使用的 MPD 客户端 (特雷门琴) 可以通过遥控器控制,但按下按钮时 iTunes 会打开。

顺便说一句,我无法在家长控制中禁用 iTunes,因为它需要在我的管理员帐户上运行,但如果该解决方案导致 iTunes 无法运行,那也没关系。

答案1

我不知道 Apple Remote(虽然我认为有一个免费的应用程序可以让你自定义它),但我可以帮你使用媒体键。我使用 ControllerMate(15 美元)在外接键盘上完成了此操作,但我想你可以使用免费的热键管理器 Sparkle 做同样的事情:你需要将键指向 AppleScript,然后运行一个 shell 脚本来告诉 MPD 要做什么。这并不太难;我为此目的学会了编写 AppleScript 和 shell 脚本,总共花了我几个小时。

我的 MPD 在另一台计算机上,如果您的也是,您需要确保公钥身份验证已禁用,以便您无需密码即可 ssh 进入。(或者,我想您可以在 Mac 上安装 mpc,但我太胆小了,不敢这样做。)在装有 MPD 的计算机上安装 MPC(并确保环境变量正确)。然后在 Mac 上,编写并保存一个 shell 脚本,告诉 bash ssh 进入您的 MPD 机器并告诉 mpc 执行某些操作。对于“切换”(播放/暂停),这是我的:

#!/bin/bash
ssh 10.0.1.42 -l USERNAME "export MPD_HOST=10.0.1.42; mpc toggle --no-status"

由于某种原因,我不得不将 MPD_HOST 放在那里。编写下一个和上一个曲目的脚本应该很简单;如果您不知道 mpc 命令,请查看 mpc 的手册页。

我的 applescript 比你的更复杂,因为它根据我运行的应用程序决定是否控制 MPD 或 iTunes。从根本上讲,你只需要

do shell script "path/to/yourscript.sh"

您可以将其保存为 .scpd。在 ControllerMate 或 Sparkle 中,将键绑定到 AppleScript 很容易,因此您应该已经做好了一切准备。

享受!

答案2

作为更新,请注意现在您还可以使用 Theremin 客户端的分支来控制 MPD:https://github.com/TheStalwart/Theremin 复活的客户端不仅支持媒体键,还继承了古老的 Theremin 音乐播放器界面,为您提供 MPD 的库和队列。

答案3

首先,你必须告诉 iTunes不要抢钥匙

然后你使用 Karabiner运行 shell 脚本当你按下那些钥匙(查找 VK_CONSUMERKEY_MUSIC_PLAY)。

一步一步来。1.安装 Karabiner:

brew install cask karabiner
  1. 下载这个文件Library/Application Support/Karabiner/private.xml

  2. 在 Karabiner UI 中启用所需项目,或者:

    /Applications/Karabiner.app/Contents/Library/bin/karabiner reloadxml /Applications/Karabiner.app/Contents/Library/bin/karabiner 启用 private.media_next /Applications/Karabiner.app/Contents/Library/bin/karabiner 启用 private.media_play /Applications/Karabiner.app/Contents/Library/bin/karabiner 启用 private.media_prev

陷阱: - 你应该在脚本中使用绝对路径 - 如果你需要使用 shell 内置命令,请通过以下方式运行bash -c 'script goes here'

相关内容