2

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

適切なハウツーすら見つからないので、どんな助けでも大歓迎です。

4

1 に答える 1

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と Get/GetAll メソッドについては、それらの目的全体もわかりません。特にトーテムよりもDBus自体に関係があるようです。

参考文献

  1. http://git.gnome.org/browse/totem/tree/src/plugins/dbusservice/dbusservice.py
  2. http://developer.gnome.org/totem/stable/TotemObject.html
于 2011-03-31T01:18:19.827 に答える