【问题标题】:Get all implementors of an interface in dbus?在 dbus 中获取接口的所有实现者?
【发布时间】:2014-01-24 12:58:38
【问题描述】:

我正在编写一个脚本来获取当前正在播放的任何媒体播放器的当前播放曲目。我感兴趣的两个玩家都实现了org.mpris.MediaPlayer2.Player 接口:

我希望能够获得此接口的所有实现者的列表,以便我可以根据正在播放的内容在 Banshee 或 Nuvola Player 中显示当前播放歌曲的专辑信息。

这是我当前的代码:

bus = dbus.SessionBus()

player = bus.get_object('org.bansheeproject.Banshee', '/org/mpris/MediaPlayer2')
properties = dbus.Interface(player, 'org.freedesktop.DBus.Properties')

metadata = properties.Get('org.mpris.MediaPlayer2.Player', 'Metadata')

我怎样才能把它转换成可以拉起所有实现org.mpris.MediaPlayer2.Player的东西?

【问题讨论】:

    标签: python dbus


    【解决方案1】:

    只需过滤注册名称:

    filter(lambda x: x[:22] =='org.mpris.MediaPlayer2', bus.list_names())
    

    【讨论】:

    • 也许您可以详细说明一下?
    猜你喜欢
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 2019-07-25
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    相关资源
    最近更新 更多