2

ここで説明されているのとまったく同じことをしたい:

Pythonを使用してトラックの変更についてリズムボックスを継続的に監視する方法

ただし、Rhythmbox の代わりに Clementine を使用します。

問題は、connect_to_signalメソッドに渡すplayUriChangedに相当するものが見つからなかったことです。

関連すると思われるqdbusで見つけた唯一のものは

signal void org.freedesktop.MediaPlayer.TrackChange(QVariantMap)

しかし、それはパラメータを取ります。

私は DBus に詳しくないので、助けていただければ幸いです。

ありがとう

4

1 に答える 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") 
于 2013-02-11T01:21:47.213 に答える