我想做与这里解释的完全相同的事情:
How to continuously monitor rhythmbox for track change using python
但使用 Clementine 而不是 Rhythmbox。
问题是,我无法找到 playingUriChanged 的等价物以提供给 connect_to_signal 方法。
我能找到的唯一与 qdbus 相关的东西是
signal void org.freedesktop.MediaPlayer.TrackChange(QVariantMap)
但它需要一个参数。
我不熟悉 DBus,因此不胜感激。
谢谢
最佳答案
它不接受参数,它返回参数( HashMap )
从 this script 中提取的代码:
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")
关于python - 使用 Python 使用 DBus 监控 Clementine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14801616/