首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Qt5中是否支持通过ALSA播放音频?

在Qt5中是否支持通过ALSA播放音频?
EN

Stack Overflow用户
提问于 2013-11-14 18:30:16
回答 3查看 8.6K关注 0票数 11

我有一个小型的C++ Qt程序,它使用QAudioOutput实例发出声音。它使用QT4.8.5编译并运行良好。

但是,在QT5.0、5.1和5.2中,我的应用程序编译,但不工作。在运行QAudioOutput实例的构造函数时,我得到以下错误消息:

无法创建到脉冲音频上下文的连接。

而且,构造函数不返回,所以我的程序挂起。

我没有脉冲音频运行。ALSA运行良好,这是我的程序在QT4.8.5编译时所使用的。

检查Qt5“plugins/音频”目录时,只有“libqtmedia_pulse.so”,其名称表明它依赖于脉冲音频。

我的问题:

  • Qt 5+中还有输出到ALSA (没有脉冲音频)的后端吗?
  • 如果是,我如何确保它是建造的?我没有看到任何配置选项。
  • QAudioOutput的构造器挂起我的应用程序似乎是一个错误。我在哪能报告呢?
EN

回答 3

Stack Overflow用户

发布于 2014-07-30 19:14:57

来自多媒体后端上的Qt文档wiki:

以下是当前音频后端的列表: Windows多媒体CoreAudio (Mac / iOS) PulseAudio (Unix) Alsa (Unix) OpenSL ES (Android) QNX 只有PulseAudio、CoreAudio和QNX后端才是真正的插件。其他后端是相关类中的“#ifdef‘’ed”。

因此,ALSA基本上不是一个插件,但在配置Qt时必须进行选择(如果您构建了自己的插件,我假设您是这样做的)。

来自于利用git构建Qt5上的Qt文档wiki

Qt多媒体 您至少需要alsa-lib (>= 1.0.15)和gstreamer (>=0.10.24,但现在需要<1.0lists.qt-project.org)和基本插件包。 Ubuntu/Debian: sudo apt安装libasound2-dev libgstreamer0.10-dev libgstreamer plugins-sudo 0.10-dev

在配置Qt时,由于缺少依赖关系,在没有编译某些特性的情况下,我已经失去了计数。因此,绝对100%确保所有依赖项都已正确安装,并且所有配置选项在当前的配置程序中都是有效的(可用选项甚至在小版本之间也会更改)!请记住仔细查看构建过程的输出(收集文件中的输出,并在生成完成后搜索它,以查找任何带有“跳过”或“错误”或类似关键字的消息。

OTOH,如果你没有建立你自己的Qt,那么我不知道,你应该无视这个答案。

票数 4
EN

Stack Overflow用户

发布于 2014-11-29 19:05:25

修复在QT5.4中存在,提交eb75bf8e3bde3a9b3efc91b54aa4dc2e34a3cde4

我是Qt的Debian维护人员,今天有一个用户遇到了同样的问题。构建日志显示,alsa依赖项存在,并且正在被正确检测.*-/

注意,2014-12-03:问题在于plugins.pro:如果找到脉冲音频支持,它不会构建alsa插件。问题和补丁由克里斯鲁沃罗,将推动上游今天晚些时候。

票数 0
EN

Stack Overflow用户

发布于 2020-11-09 23:03:11

给你,后端

是的,我认为阿尔萨也支持。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19985490

复制
相关文章

相似问题

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