系统及环境

系统:统信UOS(基于linux)
CPU架构:ARM
Qt:5.15.2

Qt通过源码编译安装。

问题

运行Qt 自带事例QAudioOutput ,当调用 QAudioDeviceInfo::availableDevices 获取可用的音频输出设备列表时,报错 "using null output device none available",不能正常播放音频。

解决

查看Qt安装目录中的插件目录 plugins
正常情况下,这里面应该有一个audio插件:

如果没有的话,那就会导致这个问题咯。

如果是linux x86的话 通过Qt安装包会自动包含audio的插件,但是如果通过Qt源码编译安装,那就需要自己指定编译参数后才会编译生成该插件。

我的Qt安装目录下一开始也没有这个插件,通过排查定位到这个问题。ok,接下来看如何修改源码编译参数。

网上有很多关于编译Qt 源码时配置configure的文章,但是需要注意的是,不同Qt 版本可能对应的configure配置会有差异,特别是大版本之间,所以网上的有些配置并不一定能适用你当前的Qt版本,除非用的Qt版本一样。

那我们如何查看并配置相应参数呢,很简单,直接在Qt 源码目录,通过命令行 configure -h 就可以查看配置帮助,非常详细。

打开终端,切换到Qt安装目录,输入命令 ./configure -h 可以看到所有相关的配置说明,非常详细,接着我们找到 Multimedia options 说明:

这里可以看几项对于audio的编译配置,主要是前两个,在linux x86环境下通过Qt 安装包安装的目录下,插件audio中可以看到两个库,libqtaudio_alsa.solibqtmedia_pulse.so ,其中音频播放需要用到前面一个库,那对应的编译参数就需要加上 -alsa ,视频播放需要后面那个库,编译参数指定 -pulseaudio

ok, 那接下来我们在自动配置的脚本里面添加上 -alsa :

#!/bin/sh
./configure \
-prefix /usr/bin/qt5.15.2_ARM \
-confirm-license \
-opensource \
-release \
-make libs \
-xplatform linux-aarch64-gnu-g++ \
-pch \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-Fontconfig \
-system-freetype \
-opengl \
-xcb \
-dbus \
-build-qtpdf \
-build-qtwebengine-core \
-alsa \

注意,其它编译选项根据自己的需要进行添加。

在编译之前还有一个地方要注意,要编译libqtaudio_alsa这个库必须要先在本机安装 alsa,可以通过 sudo apt-get install alsaxx 将alsa相关的东西都安装上。

如果安装,那么在执行configure后会报错:

ERROR: Feature 'alsa' was enabled, but the pre-condition 'config.unix && !config.qnx && libs.alsa' failed.

接着如果之前已经编译过源码,需要先 make clean清理一下,重新编译。

最后编译安装完,就可以在plugins下找到 audio目录了:

再次运行示例,可以正常播放音频。

Linux(UOS) Qt不能播放音频的问题相关推荐

  1. Linux系统 QT+Faac实时音频采集编码(QT音频采集篇)

    一:前言 刚毕业不久,接到的第一个项目就是音频采集. 要求在树莓派Linux系统上用QT进行音频采集,然后实时编码发送给window上的一个程序. 完成项目期间搜集了许多相关资料,苦于网上信息太过零散 ...

  2. Qt 无法播放音频文件

    最常见问题 在调试时输出: QtMultimedia : defaultServiceProvider::requestService(): no service found for - " ...

  3. 利用qt播放音频数据

    今天分享一下如何利用qt的接口来播放pcm的原始音频数据. 首先需要准备好一段pcm的原始音频数据,这边可以通过ffmpeg的命令将mp4视频格式中的音频提取出来并按照pcm的格式进行保存. 命令为: ...

  4. Qt Creator 使用 QMediaPlayer 播放音频无声音

    Qt Creator 使用 QMediaPlayer 播放音频无声音 如果需要使用QMediaPlayer ,播放音视频,需要先在 .pro 文件中添加 Multimedia 模块.使用 QMedia ...

  5. alin的学习之路:嵌入式课程设计总结(基于Linux的Qt版MP3播放器)

    嵌入式课程设计总结(基于Linux的Qt版MP3播放器) 废话不多写直接上图上代码,其中有很多不规范的地方,希望大佬们指正. 1.课设题目 设计一个MP3播放器,要求:使用Linux下的madplay ...

  6. Linux下使用C++播放wav音频文件

    Linux下使用C++播放wav音频文件 安装openal第三方库 上代码 安装openal第三方库 unbuntu下安装命令:sudo apt-get install libopenal-dev 安 ...

  7. QT——制作简易音频播放器

    应用前提:只需要从阿里云数据库中读取选定的某一条实验数据的音频(.wav),现在的测试版本只是播放本地音频,所以做的这个音频播放器只有6个功能:播放.暂停.音量条.静音.进度条.显示当前播放进度的时间 ...

  8. QT +VS 自制小应用程序播放音频,更改win10桌面壁纸

    Qt版本5.14.2 + VS2017 当前主要功能:播放音频,更改win10桌面壁纸 QT +VS 自制小应用程序播放音频,更改win10桌面壁纸 总结几个要点如下: 1 关于程序透明边框+背景图片 ...

  9. linux 音频文件播放文件管理,linux dsp 播放音频文件

    #include #include #include #include #include #include #include /* 下面的三个参数是跟具体文件相关 * cmd: file 音频文件 * ...

最新文章

  1. node.js创建WebSocket服务,并使用原生js ES6完成对WebSocket数据交互
  2. [转]最快速度找到内存泄漏
  3. Win7 wifi热点设置( 转载)
  4. CCAI 2017 | 德国DFKI科技总监Hans Uszkoreit:如何用机器学习和知识图谱来实现商业智能化? 原2017.07.25AI科技大本营 文/CSDN大琦 7 月22 - 2
  5. 《影响力》承诺和一致原理深入剖析,人们对自己的选择是很相信的
  6. jquery中的ajax方法参数——$.ajax()方法详解
  7. python循环遍历把表写入csv_求教python3.5如何把字典循环写入csv?
  8. Myeclipse学习总结(10)——MyEclipse2014导入项目时The project was not built since its build问题
  9. json jackson
  10. iconfont阿里矢量图标库的引入与使用
  11. TX2平台cmake安装
  12. 理正深基坑弹性计算方法_理正深基坑软件7.0/理正岩土6.5/理正勘察9.0/理正工具箱7.0...
  13. 高等数学:第七章 空间解析几何(1)空间解析几何与向量代数
  14. linux驱动面试题2018
  15. html图片铺底代码,梦幻西游底部师徒四人动态图
  16. 猜疑链,区块链,微信群有什么关系?
  17. H.266/VVC测试软件VTM
  18. Android x86 4.4-r1 PC正式版发布
  19. UI自动化执行遇到的问题汇总
  20. openlayers5之聚合分析图层Cluster

热门文章

  1. 即时通讯音视频开发(三):视频编解码之编码基础
  2. springboot常用配置
  3. 寒假与春节终归,新学期和新任务又至
  4. 双向多点路由重分布--如何防止路由环路以及次优路径
  5. 并查集 Python实现
  6. Codeforces Round #320 (Div. 1) [Bayan Thanks-Round] A A Problem about Polyline(数学)
  7. memcached(九)--LRU
  8. 去掉button按钮左右两边的留白
  9. 3COM小型办公室有线局域网方案
  10. 返岗上班应该注意什么?五个细节必须牢记