我编写了这个小脚本,以使用 xmms 客户端和 pynotify 在通知小部件上显示在 xmms2 上播放的当前曲目,因此当我运行它时,我可以使用 xmmsclient 方法看到带有当前艺术家和标题的小部件弹出窗口。
任何人都可以提供一些关于如何检测跟踪更改以自动通知而无需手动运行脚本的提示吗?
您将客户端库连接到主循环,并通过 broadcast_playback_current_id 方法注册为侦听器。如果您还想在脚本启动时获得当前正在播放的 id,您可以调用playback_current_id 方法。
这是xmms2-tutorial.git中 tutorial6 的一个小改编,它使用 GLib Mainloop 来驱动连接:
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()