使用Python通过DBus监控Clementine
我想做的事情和这里解释的一样:
不过我想用Clementine来代替Rhythmbox。
问题是,我找不到可以给connect_to_signal方法用的playingUriChanged的对应项。
我用qdbus找到的唯一看起来相关的东西是
signal void org.freedesktop.MediaPlayer.TrackChange(QVariantMap)
但它需要一个参数。
我对DBus不太熟悉,所以任何帮助都很感激。
谢谢
1 个回答
0
它不需要输入参数,而是返回一个参数(哈希表)。
以下代码摘自 这个脚本:
def TrackChange(Track):
# use Track["URI"], Track["title"], Track["artist"] etc
def Connect(name):
global root, player, tracklist
# first we connect to the objects
root_o = bus.get_object(name, "/")
player_o = bus.get_object(name, "/Player")
tracklist_o = bus.get_object(name, "/TrackList")
# there is only 1 interface per object
root = dbus.Interface(root_o, "org.freedesktop.MediaPlayer")
tracklist = dbus.Interface(tracklist_o, "org.freedesktop.MediaPlayer")
player = dbus.Interface(player_o, "org.freedesktop.MediaPlayer")
# connect to the TrackChange signal
player_o.connect_to_signal("TrackChange", TrackChange, dbus_interface="org.freedesktop.MediaPlayer")