MPRIS - Arch Linux 中文维基

跳转到内容

# MPRIS

来自 Arch Linux 中文维基
翻译状态：

- 本文（或部分内容）译自 MPRIS，最近一次同步于 2024-4-28，若英文版本有所更改，则您可以帮助同步与翻译更改的内容。
- 您可以在 ArchWiki 的对应页面找到本文翻译的原始修订历史。
- 本文可能与英文原文存在出入。

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

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

## 支持的客户端

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

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

- Audacious
- celluloid包
- Chromium
- clementineAUR
- cmus
- deadbeefAUR (using deadbeef-mpris2-pluginAUR)
- dragon包
- Firefox
- gmusicbrowserAUR
- guayadequeAUR
- KDE#KDE Connect
- mpv#mpv-mpris
- MPD/提示与技巧#MPRIS 支持
- ncspot包
- Quod Libet
- rage包
- resonanceAUR
- smf-dsp-gitAUR
- Spotify#MPRIS
- spotube-binAUR
- Telegram
- tidal-hifi-binAUR
- VLC
- brave-nightly-binAUR

## 控制工具

提示：为常用控制命令和多媒体键，（如`XF86AudioPlay`, `XF86AudioStop`, `XF86AudioPrev` 与 `XF86AudioNext`）创建键绑定

### 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-systemd-unitAUR 软件包，而不是手动创建服务。

此外，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。

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

安装 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。

提示：可以安装 mpris-proxy-serviceAUR 软件包，而不是手动创建服务。
分类：​

- 多媒体

MPRIS
添加话题