MPRIS
MPRIS (媒体播放器远程接口规范) 是一个标准的 D-Bus 接口,旨在提供用于控制媒体播放器的通用编程API。
它为兼容媒体播放器的发现、查询和基本播放控制提供了一种机制,还提供了一个曲目列表界面,用于为活动媒体项目添加上下文。
支持的客户端[编辑 | 编辑源代码]
- Audacious
- celluloid包
- Chromium
- clementineAUR
- cmus
- deadbeefAUR (using deadbeef-mpris2-pluginAUR)
- dragon包
- Firefox
- gmusicbrowserAUR
- guayadequeAUR
- KDE#KDE Connect
- mpv#mpv-mpris
- Music Player Daemon/Tips and tricks#MPRIS support
- ncspot包
- Quod Libet
- rage包
- resonanceAUR
- smf-dsp-gitAUR
- Spotify#MPRIS
- spotube-binAUR
- Telegram
- tidal-hifi-binAUR
- VLC
- brave-nightly-binAUR
控制工具[编辑 | 编辑源代码]
Playerctl[编辑 | 编辑源代码]
playerctl包 工具提供了一个命令行工具,用于将命令发送到 MPRIS 客户端。最常见的命令是 play-pause
, next
与 previous
:
$ playerctl play-pause $ playerctl next $ playerctl previous
playerctl 会向它找到的第一个播放器发送命令。要手动选择播放器,请使用 --player
选项,例如 --player=vlc
。为了更好地实现自动化,playerctl 附带了一个守护进程,它能跟踪媒体播放器的活动,并将命令发送给最近有活动的播放器。你可以使用以下命令将它转入后台:
$ playerctld daemon
为了在登录时启动 playerctld,您可以创建以下 systemd/用户服务
~/.config/systemd/user/playerctld.service
[Unit] Description=Keep track of media player activity [Service] Type=oneshot ExecStart=/usr/bin/playerctld daemon [Install] WantedBy=default.target
然后,您应该在启用带有--user
标志的服务之前执行daemon-reload 。
此外,playerctld 还能够更改活动播放器,这在您同时拥有多个媒体流时非常有用:
要切换到下一个播放器,请使用:
$ playerctld shift
要切换到上一个播放器,请使用:
$ playerctld unshift
mpris-player-control[编辑 | 编辑源代码]
mpris_player_control 是一个 shell 脚本,它集成了 dbus-send
和 pactl
以控制 MPRIS 客户端。它支持播放、暂停、暂停播放和停止操作,以及 Spotify 的音量控制(静音/静音/上/下)。
运行 mpris_player_control -h
以显示基本脚本用法。
D-Bus[编辑 | 编辑源代码]
上述方法的替代方法是手动使用 D-Bus,默认情况下它应该可用,因为它是 systemd 的依赖项。
例如,可以使用以下命令通过支持的 Methods 来控制 Spotify:
$ dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Method
类似地,使用 busctl(1):
$ busctl --user call org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player Method
蓝牙[编辑 | 编辑源代码]
来自蓝牙耳机和类似设备的媒体控制可能会转发到 MPRIS。
安装 bluez-utils包 软件包并运行 mpris-proxy
。为了在后台和/或系统启动时启动 mpris-proxy,您可以创建一个 systemd/用户服务:
~/.config/systemd/user/mpris-proxy.service
[Unit] Description=Forward bluetooth media controls to MPRIS [Service] Type=simple ExecStart=/usr/bin/mpris-proxy [Install] WantedBy=default.target
然后,在启动/启用带有--user
标志的服务之前执行daemon-reload。