我想找到当前使用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
接口(interface)方法。我目前在这一点上:
>>> 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'))
我什至找不到合适的操作方法,因此将不胜感激。
最佳答案
目前,我出于其他原因正在研究API,我需要检索正在播放的路径或位置,而我偶然发现了这个问题。
首先,您需要激活D-Bus服务插件(编辑->插件),该插件将公开org.mpris.Totem
服务。然后在/Player
对象和org.freedesktop.MediaPlayer
接口(interface)上,可以使用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有关。引用