Какие сигналы DBus я посылаю игрокам для имитации мультимедийных ярлыков Gnome?

У меня Xubuntu 11.10, XFCE. Я хочу посылать сигналы DBus игрокам, чтобы они работали, как в Gnome: вы нажимаете клавишу "play", она играет, "next" - она ​​вперед и так далее.

Для этого мне нужно привязать к мультимедийным клавишам такой набор команд:

dbus-send --dest=org.gnome.Rhythmbox ...

Теперь я искал и не могу найти: какие сигналы я должен послать? Мне нужно всего 3 события: играть, перематывать и перематывать.

Вот что мне удалось сделать до сих пор:

culebron@vostro:~/Work/game$ dbus-send --print-reply --dest=org.gnome.Rhythmbox /org/gnome/Rhythmbox org.gnome.Rhythmbox.Play
Error org.freedesktop.DBus.Error.UnknownMethod: Method "Play" with signature "" on interface "org.gnome.Rhythmbox" doesn't exist

culebron@vostro:~/Work/game$ dbus-send --print-reply --dest=org.gnome.Rhythmbox /org/gnome/Rhythmbox org.mpris.MediaPlayer2.Play
Error org.freedesktop.DBus.Error.UnknownMethod: Method "Play" with signature "" on interface "org.mpris.MediaPlayer2" doesn't exist

1 ответ

Решение

Сигнал отправлен org.gnome.SettingsDaemon.MediaKeys.MediaPlayerKeyPressed на /org/gnome/SettingsDaemon/MediaKeysс двумя аргументами - именем целевой программы, которое регистрирует сама программа, и нажатой клавишей ("Play", "Stop", "Next", "Previous").

отправитель сигнала =:1.3 -> dest=(null destination) serial=3047
 Путь =/ орг / гном /SettingsDaemon/MediaKeys
 Интерфейс =org.gnome.SettingsDaemon.MediaKeys
 Член =MediaPlayerKeyPressed
   строка "gnome-mpris-keybind (mpd)"
   Строка "Play"

Тем не менее, это, вероятно, будет бесполезным, так как без gsd ваш плеер не сможет зарегистрироваться и не будет гарантированно прослушивать этот сигнал.

В некоторых случаях вы можете пропустить этот слой и напрямую управлять музыкальным проигрывателем - большинство проигрывателей экспортируют интерфейс MPRIS2 по адресу org.mpris.MediaPlayer2.playernameу других есть свои пользовательские интерфейсы, которые можно изучить с помощью D-Feet.

вызов метода sender=:1.449 -> dest=org.mpris.MediaPlayer2.mpd serial=17
  Путь =/ орг /mpris/MediaPlayer2;
  Интерфейс =org.mpris.MediaPlayer2.Player;
  Член = PlayPause
Другие вопросы по тегам