Linux(UOS) Qt不能播放音频的问题
系统及环境
系统:统信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.so
和 libqtmedia_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不能播放音频的问题相关推荐
- Linux系统 QT+Faac实时音频采集编码(QT音频采集篇)
一:前言 刚毕业不久,接到的第一个项目就是音频采集. 要求在树莓派Linux系统上用QT进行音频采集,然后实时编码发送给window上的一个程序. 完成项目期间搜集了许多相关资料,苦于网上信息太过零散 ...
- Qt 无法播放音频文件
最常见问题 在调试时输出: QtMultimedia : defaultServiceProvider::requestService(): no service found for - " ...
- 利用qt播放音频数据
今天分享一下如何利用qt的接口来播放pcm的原始音频数据. 首先需要准备好一段pcm的原始音频数据,这边可以通过ffmpeg的命令将mp4视频格式中的音频提取出来并按照pcm的格式进行保存. 命令为: ...
- Qt Creator 使用 QMediaPlayer 播放音频无声音
Qt Creator 使用 QMediaPlayer 播放音频无声音 如果需要使用QMediaPlayer ,播放音视频,需要先在 .pro 文件中添加 Multimedia 模块.使用 QMedia ...
- alin的学习之路:嵌入式课程设计总结(基于Linux的Qt版MP3播放器)
嵌入式课程设计总结(基于Linux的Qt版MP3播放器) 废话不多写直接上图上代码,其中有很多不规范的地方,希望大佬们指正. 1.课设题目 设计一个MP3播放器,要求:使用Linux下的madplay ...
- Linux下使用C++播放wav音频文件
Linux下使用C++播放wav音频文件 安装openal第三方库 上代码 安装openal第三方库 unbuntu下安装命令:sudo apt-get install libopenal-dev 安 ...
- QT——制作简易音频播放器
应用前提:只需要从阿里云数据库中读取选定的某一条实验数据的音频(.wav),现在的测试版本只是播放本地音频,所以做的这个音频播放器只有6个功能:播放.暂停.音量条.静音.进度条.显示当前播放进度的时间 ...
- QT +VS 自制小应用程序播放音频,更改win10桌面壁纸
Qt版本5.14.2 + VS2017 当前主要功能:播放音频,更改win10桌面壁纸 QT +VS 自制小应用程序播放音频,更改win10桌面壁纸 总结几个要点如下: 1 关于程序透明边框+背景图片 ...
- linux 音频文件播放文件管理,linux dsp 播放音频文件
#include #include #include #include #include #include #include /* 下面的三个参数是跟具体文件相关 * cmd: file 音频文件 * ...
最新文章
- node.js创建WebSocket服务,并使用原生js ES6完成对WebSocket数据交互
- [转]最快速度找到内存泄漏
- Win7 wifi热点设置( 转载)
- CCAI 2017 | 德国DFKI科技总监Hans Uszkoreit:如何用机器学习和知识图谱来实现商业智能化? 原2017.07.25AI科技大本营 文/CSDN大琦 7 月22 - 2
- 《影响力》承诺和一致原理深入剖析,人们对自己的选择是很相信的
- jquery中的ajax方法参数——$.ajax()方法详解
- python循环遍历把表写入csv_求教python3.5如何把字典循环写入csv?
- Myeclipse学习总结(10)——MyEclipse2014导入项目时The project was not built since its build问题
- json jackson
- iconfont阿里矢量图标库的引入与使用
- TX2平台cmake安装
- 理正深基坑弹性计算方法_理正深基坑软件7.0/理正岩土6.5/理正勘察9.0/理正工具箱7.0...
- 高等数学:第七章 空间解析几何(1)空间解析几何与向量代数
- linux驱动面试题2018
- html图片铺底代码,梦幻西游底部师徒四人动态图
- 猜疑链,区块链,微信群有什么关系?
- H.266/VVC测试软件VTM
- Android x86 4.4-r1 PC正式版发布
- UI自动化执行遇到的问题汇总
- openlayers5之聚合分析图层Cluster