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