Команда для получения списка всех воспроизводимых мультимедиа

Я хочу получить список всех воспроизводимых медиа. Примерно так, как показывает вам панель уведомлений. Есть ли команда сделать то же самое?

enter image description here

3
задан 9 December 2020 в 13:36

1 ответ

Эта функция реализована с помощью MPRIS (Спецификация удаленного интерфейса медиаплеера), стандартного интерфейса D-Bus.

Вы можете управлять им с помощью команд DBUS вручную, но я нахожу его «немного» сложным для повседневного использования:

# Get current Status
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify \
  /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get \
  string:'org.mpris.MediaPlayer2.Player' \
  string:'PlaybackStatus'

# Get Metadata of currently playing song (if Playing)
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify \
  /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get \
  string:'org.mpris.MediaPlayer2.Player' \
  string:'Metadata'

(spotify — это плеер, измените его соответствующим образом)

или просто используйте playerctl :

playerctl status
playerctl metadata

Установить с помощью apt:

sudo apt install playerctl

Вы также можете управлять игроками с помощью python модуля dbus:

#!/usr/bin/env python3
import dbus
bus = dbus.SessionBus()
for service in bus.list_names():
    if service.startswith('org.mpris.MediaPlayer2.'):
        player = dbus.SessionBus().get_object(service, '/org/mpris/MediaPlayer2')

        status=player.Get('org.mpris.MediaPlayer2.Player', 'PlaybackStatus', dbus_interface='org.freedesktop.DBus.Properties')
        print(status)

        metadata = player.Get('org.mpris.MediaPlayer2.Player', 'Metadata', dbus_interface='org.freedesktop.DBus.Properties')
        print(metadata)
4
ответ дан 9 December 2020 в 10:51

Другие вопросы по тегам:

Похожие вопросы: