如何使用 dbus 连接 HAL

Posted

技术标签:

【中文标题】如何使用 dbus 连接 HAL【英文标题】:how to connect HAL using dbus 【发布时间】:2011-04-09 14:13:27 【问题描述】:

我正在使用 python 和 dbus。我真正需要的是一种将麦克风的输入输入到 python 程序中,然后从程序中回放的方法。我用谷歌搜索了很多,似乎 pyaudio 可以解决问题,但 pyaudio 不适用于我的 ubuntu 10.04。

我看到的下一个选项是心灵感应。但我也不需要那么大的东西。看到心灵感应如何在 dbus 上工作,我猜想这可能是要走的路。

不幸的是,我无法连接到 Harware Abstraction LAyer 并使用它从我的麦克风获取输入。有没有办法做到这一点,还是我应该在其他地方寻找?

【问题讨论】:

@user409345,大多数人会利用更大的文本输入控件来实际详细说明和扩展他们的标题,而不仅仅是重复它。否则你会得到一些 wag 的回答和/或评论“”,如下所示: 看看这有多烦人?如果作者不是那么好看,我可能会把它报告给当局作为虐待:-) 尊敬的用户 409345:这个问题,按原样表述,在我的指南中不是一个真正的问题 【参考方案1】:

这实际上与 HAL 或 D-Bus 完全无关。心灵感应绝对不是答案:它是一个 IM 框架。 :) 如果我是你,我会通过pygst 绑定查看GStreamer,这是Linux 桌面上的标准多媒体框架。

您需要使用gconfaudiosrc 元素从默认麦克风中提取音频,并将其发送到gconfaudiosink。要检查这是否有效,请在终端中运行 gst-launch-0.10 gconfaudiosrc ! gconfaudiosink:您应该会听到您对麦克风所说的所有内容从扬声器中回响。

这个blog post by the Internet's Jono Bacon 可能是一个很好的起点。您可以尝试将其修改为使用gconfaudiosrc 而不是filesrcdecodebinaudioconvert。你也可以看看this tutorial; GStreamer Application Development Manual 更详细。

【讨论】:

此信息对我非常有用。非常感谢您的回复。

以上是关于如何使用 dbus 连接 HAL的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 dbus 和 NetworkManager 激活连接

如何使用 Bluez Profile1 DBus API 注册连接回调

如何断开 python DBus 连接?

登录ubuntu之前如何在python守护进程中使用DBUS

如何在 C++ 中使用 Bluez5 DBUS API 来配对和连接新设备?

如何使用 dbus/bluez 在 python 中获取当前 MTU