2012-02-29 15 views
12

Ho già controllato questo collegamento: How to handle properties of a dbus interface with python. Tuttavia, questo elenca solo un'API ... ma non so da dove provenga l'API.MPRIS + Python (dbus): proprietà di lettura e scrittura

Ho appena iniziato a lavorare con dbus (piuttosto entusiasta di questo, a dire il vero^__^non sono proprio contento della documentazione che ho trovato) su python e mi chiedevo se potevo semplicemente avere qualche codice di esempio.

Sto utilizzando MPRIS specificamente per Rhythmbox, anche se "dovrebbe" essere lo stesso per tutti.

so di poter accedere e divertirsi Corrispondenza dei metodi effettuando le seguenti operazioni:

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

Tuttavia, desidero sapere di proprietà. Qualche esempio di codice sarà sufficiente :) Grazie!

risposta

18

Trovato come.

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

Abbastanza semplice davvero :) Ho pensato che sarebbe stato semplice come questo.

+0

Sei riuscito a scrivere metadati, come ad esempio impostare la valutazione di una canzone? – Mendhak

+1

Efficace, ma che dolore! Penseresti che ci sarebbe un modo più semplice. –

+0

A proposito, se hai scoperto come farlo tramite qualche risorsa online (invece di guardare attraverso il codice sorgente), potresti pubblicare il link? –