python - 使用 Python 使用 DBus 监控 Clementine

标签 python media-player monitoring dbus

我想做与这里解释的完全相同的事情:

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/

相关文章:

python - django中固有的python抽象基类

python - 归一化二维直方图

java - 在我的 Swing GUI 中嵌入视频的简单方法

java - 为什么 R.raw .'songname' 不能在安卓设备上运行?

kubernetes - Kubernetes Pod在失败时执行一些操作

monitoring - 如何在 Grafana 2.5 中删除面板

python - 遍历图中所有边的算法

python - 如何使用 Theano 在 Keras 中实现共享相同权重的 2 个相同的层分支

android - 在状态 0 下调用媒体播放器,错误 (-38,0) 错误

javascript - 如何监控单页网络应用程序?