2012-02-29 2 views
12

Я уже проверил эту ссылку: How to handle properties of a dbus interface with python. Тем не менее, это только список API ... но я не знаю, откуда этот API.MPRIS + Python (dbus): свойства чтения и записи

Я только начал работать с dbus (очень волновался об этом, если честно^__^просто не очень доволен документацией, которую я нашел) на python, и мне было интересно, могу ли я просто получить образец кода.

Я использую MPRIS специально для Rhythmbox, хотя он должен быть одинаковым для всех.

Я знаю, что я могу получить доступ и получать удовольствие witht он методов, выполнив следующие действия:

import dbus 
bus = dbus.SessionBus() 
proxy = bus.get_object('org.mpris.MediaPlayer2.rhythmbox','/org/mpris/MediaPlayer2') 
player = dbus.Interface(proxy, 'org.mpris.MediaPlayer2.Player') 
playlists = dbus.Interface(proxy, 'org.mpris.MediaPlayer2.Playlists') 
tracklist = dbus.Interface(proxy, 'org.mpris.MediaPlayer2.TrackList') 

Однако, я хотел бы знать о свойствах. Некоторый пример кода будет достаточным :) Спасибо!

ответ

18

Найдено как.

proxy = bus.get_object('org.mpris.MediaPlayer2.rhythmbox','/org/mpris/MediaPlayer2') 
properties_manager = dbus.Interface(proxy, 'org.freedesktop.DBus.Properties') 
properties_manager.Set('org.mpris.MediaPlayer2.Player', 'Volume', 100.0) 
curr_volume = properties_manager.Get('org.mpris.MediaPlayer2.Player', 'Volume') 

Довольно просто. :) Я думал, что это будет просто так.

+0

Вы могли писать метаданные, например, устанавливать рейтинг песни? – Mendhak

+1

Эффективная, но какая боль! Вы бы подумали, что будет более простой способ. –

+0

Кстати, если вы узнали, как это сделать через какой-то онлайн-ресурс (в отличие от поиска исходного кода), не могли бы вы опубликовать ссылку? –