<p>github上的<a href="http://mendhak.github.com/rhythmbox-tray-icon/" rel="nofollow">Rhythmbox Tray Icon plugin</a>确实可以设置歌曲分级,但它是在Rhythmbox执行环境之外的<em>中设置的。在</p>
<p>从<a href="https://github.com/mendhak/rhythmbox-tray-icon/blob/master/tray_icon_worker.py#L103" rel="nofollow">here</a>:</p>
<pre><code>def SetSongRating(self, rating):
"""
Sets the current song rating in Rhythmbox.
"""
try:
currentSongURI = self.GetSongURI()
if currentSongURI:
busType = Gio.BusType.SESSION
flags = 0
ratingInterface = None
proxy = Gio.DBusProxy.new_for_bus_sync(busType, flags, ratingInterface,
"org.gnome.Rhythmbox3",
"/org/gnome/Rhythmbox3/RhythmDB",
"org.gnome.Rhythmbox3.RhythmDB", None)
variantRating = GLib.Variant("d", float(rating))
proxy.SetEntryProperties("(sa{sv})", currentSongURI, {"rating": variantRating})
except:
print "Failed to set a rating"
</code></pre>
<p>如果我试图直接在Rhythmbox插件中运行代码,它会再次冻结。然而,在Rhythmbox环境之外运行它非常好。我觉得这个很好,所以我把它作为答案。在</p>