我有 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.MediaPlayerKeyPressed
on /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