web-dev-qa-db-ja.com

Gnomeのマルチメディアショートカットを模倣するために、どのDBusシグナルをプレーヤーに送信しますか?

Xubuntu 11.10、XFCEを持っています。プレーヤーにDBus信号を送信して、Gnomeのように機能させたいと思います。「再生」キーを押すと、再生し、「次へ」と進みます。

そのためには、次のような一連のコマンドをマルチメディアキーにバインドする必要があります。

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
2
culebrón

送信される信号は、org.gnome.SettingsDaemon.MediaKeys.MediaPlayerKeyPressed/org/gnome/SettingsDaemon/MediaKeysで、2つの引数があります。プログラム自体が登録するターゲットプログラムの名前と、押されたキー( "Play"、 "Stop"、 "Next"、 "Previous ")。

 signal sender =:1.3-> dest =(null destination)serial = 3047 
 path =/org/gnome/SettingsDaemon/MediaKeys 
 interface = org.gnome.SettingsDaemon.MediaKeys 
 member = MediaPlayerKeyPressed 
 string "gnome-mpris-keybind(mpd)" 
 string "Play" 

ただし、g-s-dがないと、プレーヤーは自分自身の登録に失敗し、実際にlisten forこの信号を受信することが保証されないため、これはおそらくほとんど役に立ちません。

場合によっては、このレイヤーをスキップして音楽プレーヤーを直接制御できます。ほとんどのプレーヤーはorg.mpris.MediaPlayer2.playernameでMPRIS2インターフェイスをエクスポートし、その他のプレーヤーにはD-Feetで探索できるカスタムインターフェイスがあります。

メソッド呼び出しsender =:1.449-> dest = org.mpris.MediaPlayer2.mpd serial = 17 
 path =/org/mpris/MediaPlayer2; 
 interface = org.mpris。 MediaPlayer2.Player; 
 member = PlayPause 
2
user1686