xmms クライアントと pynotify を使用して通知ウィジェットで xmms2 で再生中の現在のトラックを表示するこの小さなスクリプトを作成したので、実行すると xmmsclient メソッドを使用して現在のアーティストとタイトルのウィジェット ポップアップが表示されます。
スクリプトを手動で実行しなくても、トラックの変更を検出して自動的に通知する方法について、ヒントを教えてください。
クライアント ライブラリをメイン ループに接続し、broadcast_playback_current_id メソッドを介してリスナーとして登録します。スクリプトの開始時に現在再生中の ID も必要な場合は、playback_current_id メソッドを呼び出すことができます。
以下は、GLib Mainloop を使用して接続を駆動するxmms2-tutorial.git の tutorial6を少し変更したものです。
import xmmsclient
import xmmsclient.glib
import os
import sys
import gobject
def cb(result):
if not result.is_error():
print "Current: %(artist)s - %(title)s" % result.value()
ml = gobject.MainLoop(None, False)
xc = xmmsclient.XMMS("stackoverflow")
xc.connect()
conn = xmmsclient.glib.GLibConnector(xc)
xc.broadcast_playback_current_id(lambda r: xc.medialib_get_info(r.value(), cb))
ml.run()