Quels signaux DBus puis-je envoyer aux joueurs pour imiter les raccourcis multimédias de Gnome?

2

J'ai Xubuntu 11.10, XFCE. Je veux envoyer des signaux DBus aux joueurs afin qu’ils fonctionnent comme dans Gnome: vous appuyez sur la touche "jouer", vous jouez, "suivant" - il avance, et ainsi de suite.

Pour cela, je dois lier aux touches multimédia un ensemble de commandes comme celles-ci:

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

Maintenant, j'ai cherché et je ne le trouve pas: quels signaux dois-je envoyer? Je n'ai besoin que de 3 événements: jouer, avancer et revenir en arrière.

Voici ce que j'ai réussi à faire jusqu'à présent:

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
Culebrón
la source

Réponses:

2

Le signal envoyé est org.gnome.SettingsDaemon.MediaKeys.MediaPlayerKeyPressedactivé /org/gnome/SettingsDaemon/MediaKeys, avec deux arguments: le nom du programme cible, que le programme lui-même enregistre et la touche enfoncée ("Play", "Stop", "Next", "Previous").

émetteur du signal =: 1.3 -> dest = (destination nulle) serial = 3047
 chemin = / org / gnome / SettingsDaemon / MediaKeys
 interface = org.gnome.SettingsDaemon.MediaKeys
 membre = MediaPlayerKeyPressed
   chaîne "gnome-mpris-keybind (mpd)"
   chaîne "Play"

Cependant, cela sera probablement peu utile, car sans gsd, votre lecteur ne parviendra pas à s’enregistrer et il n’est pas garanti qu’il écoute réellement ce signal.

Dans certains cas, vous pouvez ignorer cette couche et contrôler directement le lecteur de musique - la plupart des lecteurs exportent une interface MPRIS2 , d'autres ont leurs interfaces personnalisées qui peuvent être explorées avec D-Feet.org.mpris.MediaPlayer2.playername

méthode call sender =: 1.449 -> dest = org.mpris.MediaPlayer2.mpd serial = 17
  chemin = / org / mpris / MediaPlayer2;
  interface = org.mpris.MediaPlayer2.Player;
  membre = PlayPause
Grawity
la source