Получить текущий момент времени из приложения Totem - PullRequest
2 голосов
/ 19 января 2010

Я хочу найти точное время, когда медиафайл в данный момент приостановлен (или воспроизводится) в работающем экземпляре Totem с использованием D-Bus. Если быть точным, то, что я хочу, доступно из консоли Python 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'))

Я не могу найти даже правильные инструкции, поэтому любая помощь будет принята с благодарностью.

1 Ответ

4 голосов
/ 31 марта 2011

В настоящее время я изучаю API по другой причине, мне нужно найти путь или местоположение, на котором выполняется воспроизведение, и я наткнулся на этот вопрос.

Перво-наперво, вы захотите активировать плагин D-Bus Service (Edit -> Plugins), который откроет сервис 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, чем с Totem.

Ссылки

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