我应该向玩家发送什么 DBus 信号来模仿 Gnome 的多媒体快捷方式?

我应该向玩家发送什么 DBus 信号来模仿 Gnome 的多媒体快捷方式?

我有 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

答案1

发送的信号是org.gnome.SettingsDaemon.MediaKeys.MediaPlayerKeyPressedon /org/gnome/SettingsDaemon/MediaKeys,带有两个参数 - 目标程序的名称(程序本身注册)和按下的键(“播放”、“停止”、“下一个”、“上一个”)。

信号发送者=:1.3 -> 目标=(空目标)串行=3047
 路径=/org/gnome/SettingsDaemon/MediaKeys
 接口=org.gnome.SettingsDaemon.MediaKeys
 成员=MediaPlayerKeyPressed
   字符串“gnome-mpris-keybind (mpd)”
   字符串“播放”

然而,这可能没什么用,因为没有 gsd,你的播放器将无法注册,也不能保证真正这个信号。

在某些情况下,您可以跳过这一层并直接控制音乐播放器 - 大多数播放器都会导出 MPRIS2 界面,其他播放器有其自定义界面,可以使用 D-Feet 进行探索。org.mpris.MediaPlayer2.playername

方法调用发送者=:1.449 -> 目标=org.mpris.MediaPlayer2.mpd 序列号=17
  路径=/org/mpris/MediaPlayer2;
  接口=org.mpris.MediaPlayer2.Player;
  成员=PlayPause

相关内容