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
送信される信号は、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