当前位置: 首页 > news >正文

qt5.15播放音频示例(4种方法)

文章目录

    • Qt播放音频
    • 方法一 QMediaPlayer
    • 方法二 QSound
    • 方法三 QSoundEffect
    • 方法四 QAudioOutput
    • 问题
      • 1 播放无声问题
      • 2 QAudioOutput播放嗡嗡声的问题
    • 参考


Qt播放音频

在linux系统中,可以通过aplay进行简单的播放音频,如

aplay /opt/Audio/test.wav

在图形界面,也可以封装aplay进行播放,但事实上,图形界面qt,通过封装alsa-lib,为我们提供了更简单易用的播放音频类,其中包括:QMediaPlayer,QSound,QSoundEffect以及最新的QAudioOutput,本人经过测试,验证以上类都可以正常播放音频文件,点击不同的界面,使用不同的方法进行播放:
在这里插入图片描述

方法一 QMediaPlayer

官方描述:
The QMediaPlayer class is a high level media playback class. It can be used to playback such content as songs, movies and internet radio. The content to playback is specified as a QMediaContent object, which can be thought of as a main or canonical URL with additional information attached. When provided with a QMediaContent playback may be able to commence.
官方提供的示例

player = new QMediaPlayer;
connect(player, SIGNAL(positionChanged(qint64)), this, SLOT(positionChanged(qint64)));
player->setMedia(QUrl::fromLocalFile("/Users/me/Music/coolsong.mp3"));
player->setVolume(50);
player->play();

测试的示例

	QMediaPlayer* mediaplayer = new QMediaPlayer;mediaplayer->setMedia(QUrl::fromLocalFile("/opt/Audio/test.wav"

相关文章:

  • 字符函数 和 字符串函数
  • 有序表常见题型
  • DBS note7 (end):DB Design
  • Google Guava 反射工具使用详解
  • Docker容器网络模式
  • Blender学习笔记:小车狂奔动画
  • 安卓8预装可卸载应用
  • [数据结构]HashSet与LinkedHashSet的底层原理学习心得
  • Git 标签管理
  • Jupyter Markdown 插入图片
  • Kettle 安装配置
  • SpringSecurity和JWT实现认证和授权
  • 聊聊logback的ThrowableProxyConverter
  • prometheus基础,结合node_exporter监控节点
  • 【数组】-Lc15-三数之和(排序+for循环+滑动窗口)
  • [PHP内核探索]PHP中的哈希表
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • axios 和 cookie 的那些事
  • ComponentOne 2017 V2版本正式发布
  • ES学习笔记(12)--Symbol
  • Git初体验
  • gops —— Go 程序诊断分析工具
  • IDEA 插件开发入门教程
  • MYSQL 的 IF 函数
  • Objective-C 中关联引用的概念
  • SOFAMosn配置模型
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • Theano - 导数
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 基于遗传算法的优化问题求解
  • 前端面试之闭包
  • 前言-如何学习区块链
  • 区块链将重新定义世界
  • 微信支付JSAPI,实测!终极方案
  • #HarmonyOS:软件安装window和mac预览Hello World
  • $.each()与$(selector).each()
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (Matlab)使用竞争神经网络实现数据聚类
  • (算法二)滑动窗口
  • (五)IO流之ByteArrayInput/OutputStream
  • (一)Dubbo快速入门、介绍、使用
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转) Android中ViewStub组件使用
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转)甲方乙方——赵民谈找工作
  • (转)拼包函数及网络封包的异常处理(含代码)
  • **PHP分步表单提交思路(分页表单提交)
  • .NET 指南:抽象化实现的基类
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET企业级应用架构设计系列之结尾篇
  • .skip() 和 .only() 的使用
  • []FET-430SIM508 研究日志 11.3.31
  • [Android]Android开发入门之HelloWorld