关于 QSound播放wav音频文件,播放失败“using null output device, none available” 的解决方法

news/2025/3/21 2:51:53/

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/137264493

红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

Qt开发专栏:各种问题解决(点击传送门)


问题

  给项目添加一个音频提示音功能,编译工程运行无法播放,提示““using null output device, none available”。


解决过程

步骤一:首先怀疑音频问题

  将mp3转换成wav格式,还是一样(注意:后续可以播放测试mp3也是没有解码器的“QSoundEffect(qaudio): Error decoding source”,但是可以播放wav了)。

  在这里插入图片描述

步骤二:另外新建一个工程测试

  新建工程播放wav成功。
  但是放入项目文件夹播放失败(项目文件夹带有所有依赖库打包以及项目生成应用会直接生成到该文件夹)。
  在这里插入图片描述
  在这里插入图片描述
  可以判断是依赖了本文件夹得插件库,因为直接编译到自己目录是可以得,直接生成指定到发布文件夹是不可以的。

步骤三:更新打包依赖

  重新打包,查看打包过程,多媒体插件打包进去了,测试ok。


结论

  本质上就是个音频插件依赖的问题,由于为了项目打包方便而直接将可执行程序生成到打包后的文件夹,而运行的时候就读取的是本文件夹的了,没有因为缺少而去搜索系统了。
  音频使用wav原始数据格式,以方便系统不需要依赖其他额外插件。
  QSound::play本身是非阻塞异步的。
  还有使用linux指令:alas,aplay,使用QProcess或者system()去调用,麒麟系统上默认没有装alsa和aplay工具。


本文章博客地址:https://hpzwl.blog.csdn.net/article/details/137264493


http://www.ppmy.cn/news/1404990.html

相关文章

【Node.js从基础到高级运用】二十一、使用child_process模块创建子进程

引言 在Node.js中,child_process模块是一个提供了创建和管理子进程的能力的核心模块。通过使用child_process模块,Node.js可以执行系统命令、运行其他脚本或应用程序,实现与Node.js进程的并行处理。 child_process模块提供了几种创建子进程的…

dotnet依赖注入与IOC

依赖注入与IOC IOC IOC 是 Inversion of Control(控制反转)的缩写。在软件开发中,IOC 是一种设计模式,它改变了传统的程序设计流程,使得对象之间的依赖关系由代码本身控制变为由外部容器控制。 而采用IOC 设计模式后&…

iOS开发进阶(十三):脚手架创建iOS项目

文章目录 一、前言二、xcode-select 命令三、拓展阅读 一、前言 项目初期,需要搭建项目基本框架,为此离不开辅助工具,即脚手架。当然,IDE也可以实现新建空白项目,但是其新建后的项目结构可能不符合预期设计&#xff0…

基于深度学习的危险物品检测系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)

摘要:本文详细介绍基于YOLOv8/v7/v6/v5的危险物品检测技术。主要采用YOLOv8技术并整合了YOLOv7、YOLOv6、YOLOv5的算法,进行了细致的性能指标对比分析。博客详细介绍了国内外在危险物品检测方面的研究现状、数据集处理方法、算法原理、模型构建与训练代码…

STM32重要参考资料

stm32f103c8t6 一、引脚定义图 二、时钟树 三、系统结构图 四、启动配置 (有时候不小心短接VCC和GND,芯片会锁住,可以BOOT0拉高试试(用跳线帽接)) 五、最小系统原理图 可用于PCB设计

宝塔面板提示当前未安装docker或docker-compose有效解决方案!

宝塔面板提示当前未安装docker或docker-compose有效解决方案! 首先点面板的安装docker后依旧提示【当前未安装docker或docker-compose,点击安装】,解决方法就是输入两条命令后刷新即可,命令ln -s /usr/local/bin/docker-compose /usr/bin/doc…

【mysql 第3-10条记录怎么查】

mysql 第3-10条记录怎么查 在MySQL中,如果你想要查询第3到第10条记录,你通常会使用LIMIT和OFFSET子句。但是,需要注意的是,LIMIT和OFFSET是基于结果集的行数来工作的,而不是基于记录的物理位置。这意味着它们通常与某种…

深度学习500问——Chapter05: 卷积神经网络(CNN)(2)

文章目录 5.6 有哪些池化方法 5.7 1x1卷积作用 5.8 卷积层和池化层有什么区别 5.9 卷积核是否一定越大越好 5.10 每层卷积是否只能用一种尺寸的卷积核 5.11 怎样才能减少卷积层参数量 5.12 在进行卷积操作时,必须同时考虑通道和区域吗 5.13 采用宽卷积的好处有什么 …