出自 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/用戶服務

~/.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-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 。只需確保已為媒體鍵設置了鍵綁定即可。

安裝 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 軟體包,而不是手動創建服務。