首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PulseAudio的DBus接口上获得工作信号?

在PulseAudio的DBus接口上获得工作信号?
EN

Stack Overflow用户
提问于 2015-10-21 12:17:48
回答 2查看 2.4K关注 0票数 16

我正在尝试获取一个D-Bus信号处理程序,以便在PulseAudio中接收器的状态发生变化(例如变为非活动状态)时被调用。不幸的是,它没有被调用,坦率地说,我不确定为什么。

代码语言:javascript
复制
import dbus
import dbus.mainloop.glib
from gi.repository import GObject


dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SessionBus()


def signal_handler(*args, **kwargs):
    print('sig: ', args, kwargs)


def connect():
    import os
    if 'PULSE_DBUS_SERVER' in os.environ:
        address = os.environ['PULSE_DBUS_SERVER']
    else:
        bus = dbus.SessionBus()
        server_lookup = bus.get_object("org.PulseAudio1", "/org/pulseaudio/server_lookup1")
        address = server_lookup.Get("org.PulseAudio.ServerLookup1", "Address", dbus_interface="org.freedesktop.DBus.Properties")

    return dbus.connection.Connection(address)


conn = connect()
core = conn.get_object(object_path='/org/pulseaudio/core1')
core.connect_to_signal('StateUpdated', signal_handler)
core.ListenForSignal('org.PulseAudio.Core1.Device.StateUpdated', dbus.Array(signature='o'), dbus_interface='org.PulseAudio.Core1')
loop = GObject.MainLoop()
loop.run()
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33250864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档