从Totem应用程序获取当前时间点

时间:2010-01-19 18:12:43

标签: python linux gnome dbus totem

我想找到使用D-Bus在正在运行的Totem实例中暂停(或播放)媒体文件的确切时间。确切地说,通过以下命令从Totem python控制台(如果插件存在并启用)可以获得我想要的内容:

>>> print totem_object.props.current_time
732616

我理解的是毫秒。

到目前为止: 我之前从未使用过D-Bus,因此我正在使用D-Bus和python-dbus文档。我也启动了D-Feet并发现org.gnome.Totem总线名称和/Factory对象我可以使用org.freedesktop.DBus.Properties接口方法。

我现在正处于这一点:

>>> import dbus
>>> seb= dbus.SessionBus()
>>> t= seb.get_object('org.gnome.Totem', '/Factory')
>>> tif= dbus.Interface(t, 'org.freedesktop.DBus.Properties')
>>> tif.GetAll('')
dbus.Dictionary({}, signature=dbus.Signature('sv'))

我找不到合适的方法,所以任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:4)

我目前正在研究API的原因不同,我需要检索正在播放的路径或位置,我偶然发现了这个问题。

首先,您需要激活将公开org.mpris.Totem服务的D-Bus服务插件(编辑 - >插件)。然后在/Player对象和org.freedesktop.MediaPlayer界面上,您可以使用PositionGet()方法检索当前位置。

这会返回您正在谈论的totem.props.current_time

以下是一些代码:

import dbus

T_SERVICE_NAME = "org.mpris.Totem"
T_OBJECT_PATH = "/Player"
T_INTERFACE = "org.freedesktop.MediaPlayer"

session_bus= dbus.SessionBus()

totem = session_bus.get_object(T_SERVICE_NAME, T_OBJECT_PATH)
totem_mediaplayer = dbus.Interface(totem, dbus_interface=T_INTERFACE)

print totem_mediaplayer.PositionGet()

至于整个org.gnome.Totem服务和Get / GetAll方法,我不明白这些方法的全部目的。看起来它与DBus本身有关,而不是Totem。

<强>参考

  1. http://git.gnome.org/browse/totem/tree/src/plugins/dbusservice/dbusservice.py
  2. http://developer.gnome.org/totem/stable/TotemObject.html