MPRIS

出自 ArchWiki

MPRIS (Media Player Remote Interfacing Specification,媒体播放器远程接口规范) 是一个标准的 D-Bus 接口,旨在为控制媒体播放器提供通用的程序化 API。

它为兼容的媒体播放器的发现、查询和基本播放控制提供了一种机制,以及一个用于为活动媒体项目添加上下文的曲目列表界面。

支持的客户端

本文或章节需要扩充。

原因: 您可以查看您选择的播放器,并使用 playerctl 工具检查它是否支持 MPRIS。如果支持,请将其添加到以下列表。(在Talk:MPRIS中讨论)

控制工具

提示: 为常用控制命令和多媒体键(如 XF86AudioPlayXF86AudioStopXF86AudioPrevXF86AudioNext)创建快捷键绑定

Playerctl

playerctl 实用程序提供了一个命令行工具,用于向 MPRIS 客户端发送命令。最常见的命令是 play-pausenextprevious

$ playerctl play-pause
$ playerctl next
$ playerctl previous

playerctl 将命令发送到它找到的第一个播放器。要手动选择播放器,请使用 --player 选项,例如 --player=vlc。为了更好地自动化,playerctl 配备了一个守护程序,该守护程序跟踪媒体播放器活动并将命令定向到最近活动的播放器。您可以使用以下命令将其在后台运行

$ playerctld daemon

为了在您登录时启动 playerctld,您可以创建以下 systemd/User 服务

~/.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

然后,您应该在 启用 服务之前执行 daemon-reload 和使用 --user 标志。

提示: 可以安装 playerctld-systemd-unitAUR 软件包来代替手动创建服务。

此外,playerctld 具有更改“活动”播放器的能力,当您有多个同时进行的媒体流时,这可能很有用

要切换到下一个播放器,请使用

$ playerctld shift

要切换到上一个播放器,请使用

$ playerctld unshift

mpris-player-control

mpris_player_control 是一个 shell 脚本,它集成了 dbus-sendpactl 来控制 MPRIS 客户端。它支持 Spotify 的播放、暂停、播放/暂停和停止操作以及音频输出音量控制(静音/取消静音/增大/减小)。

运行 mpris_player_control -h 以显示基本脚本用法。

D-Bus

上述方法的替代方案是手动使用 D-Bus,它应该默认可用,因为它是 systemd 的依赖项。

例如,以下命令可用于通过支持的方法控制 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。

注意: 某些耳机(如 Sony WH-1000XM3)提供 AVRCP 接口。对于这些类型,不需要 mpris-proxy。只需确保您为媒体键设置了快捷键绑定

安装 bluez-utils 软件包并运行 mpris-proxy。为了在后台和/或系统启动时启动 mpris-proxy,请使用 --user 标志启动/启用 mpris-proxy.service