2010-01-19 25 views
2

我想要查找媒體文件當前正在使用D-Bus在正在運行的Totem實例中暫停(或正在播放)的確切時間。準確地說,我要的是可以從圖騰蟒蛇控制檯通過以下命令(如果存在的插件並啓用):從圖騰應用程序獲取當前時間點

>>> 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')) 

我找不到甚至適當的操作方法,所以任何幫助將不勝感激。

回答

4

我目前正在研究API的不同原因,我需要檢索正在播放的路徑或位置,而我偶然發現了這個問題。首先,你需要激活D-Bus服務插件(編輯 - >插件),這將暴露org.mpris.Totem服務。然後在/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服務和獲取/ 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
+0

謝謝你,這也正是它。 – tzot 2011-04-08 08:01:18

+0

謝謝@ Bruce-van-der-Kooij。有沒有將視頻添加到播放列表的方法? – user427969 2016-02-24 23:36:08

相關問題