MPRIS

来自 Arch Linux 中文维基

MPRIS (媒体播放器远程接口规范) 是一个标准的D-Bus接口,旨在提供用于控制媒体播放器的通用编程API。

它提供了一种用于发现、查询和基本播放控制合规媒体播放器的机制,以及用于向活动媒体项添加上下文的曲目列表接口。

支持的客户端[编辑 | 编辑源代码]

这篇文章的某些内容需要扩充。

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

实用控制程序[编辑 | 编辑源代码]

提示:为常用控制命令和多媒体键,(如XF86AudioPlay, XF86AudioStop, XF86AudioPrevXF86AudioNext)创建键绑定

Playerctl[编辑 | 编辑源代码]

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

$ 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

然后,您应该在启用 带有--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 的依赖项。

例如,可以使用以下命令通过支持的 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。

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

Install bluez-utils软件包并运行 mpris-proxy .为了在后台和/或系统启动时启动 mpris-proxy,您可以创建一个 systemd/User 服务:

~/.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 标志的服务之前执行守护程序重新加载

提示:可以安装 mpris-proxy-serviceAUR软件包,而不是手动创建服务。