音乐播放

news/2024/4/28 23:53:43/文章来源:https://blog.csdn.net/qq_45303986/article/details/128052232

在Qt5中使用Qt Multimedia 模块来实现多媒体应用(音视频播放和控制,相机拍照。收音等)。

使用多媒体模块时需要在pro文件中添加:

QT += multimedia

QMediaPlayer(播放音频)

不追求低延迟的话使用QMediaPlayer(占用资源少)

构造函数为:

 常用的函数:

play()播放
pause()暂停
stop()停止
setMuted(bool)设置是否静音
setVolume()设置音量
setPlaybackRate()设置播放速率
setMedia()设置播放源
setPlaylist()设置播放列表
duration() 音频持续时间
state()音频状态
position()播放的当前位置
setVideoOutput()设置视频播放器

常用的信号:

audioRoleChanged

媒体播放器的音频角色已更改

currentMediaChanged

当前播放的内容已更改为媒体

durationChanged

内容的持续时间已更改为持续时间的信号

error

发生了错误情况

mediaChanged

媒体源已更改为媒体

mutedChanged

已更改为静音

playbackRateChanged

速率已更改

positionChanged

内容的位置已更改为位置,以毫秒表示

stateChanged

播放器对象的状态已更改

volumeChanged

播放音量已更改

QMediaPlayer::Error(错误的种类)

QMediaPlayer::NoError未发生错误。
QMediaPlayer::ResourceError无法解析媒体资源。
QMediaPlayer::FormatError媒体资源的格式不受(完全)支持。播放可能仍然可以,但没有音频或视频组件。
QMediaPlayer::NetworkError发生网络错误
QMediaPlayer::AccessDeniedError没有播放媒体资源的适当权限。
QMediaPlayer::ServiceMissingError找不到有效的播放服务,无法继续播放。

制作一个带控制页面的播放器:

 在pro文件中添加:

QT += multimedia

 在widget.h中添加一个QMediaPlayer对象

    QMediaPlayer *player;//需要添加头文件#include<QMediaPlayer>

在ui界面中添加以下控件:

lineEdit    label*2    pushButton*3

 构造函数的内容为:

    QUrl url("F:/music/That Girl - Olly Murs.mp3");//获取文件路径player=new QMediaPlayer;player->setMedia(url);//设置播放对象ui->lineEdit->setText(url.toString());//设置对象名connect(ui->pushButton,&QPushButton::clicked,[=](){player->play();//播放});connect(ui->pushButton_2,&QPushButton::clicked,[=](){player->pause();//暂停});connect(ui->pushButton_3,&QPushButton::clicked,[=](){player->stop();//停止(会重置到开头)});connect(player,&QMediaPlayer::durationChanged,[=](){//获取总时间QTime time;//创建一个时间time.setHMS(0,0,0,0);//初始化为0time=time.addMSecs(player->duration());//获取播放的总时间,添加毫秒数ui->label_2->setText(time.toString("mm:ss:zzz"));//显示总时间});connect(player,&QMediaPlayer::positionChanged,[=]()//获取播放时间{QTime time1;time1.setHMS(0,0,0,0);//初始化为0time1=time1.addMSecs(player->position());//添加毫秒数ui->label->setText(time1.toString("mm:ss:zzz"));//显示总时间});

功能的展示:

初始状态:

 点击播放:

 点击暂停的话,就是正常的暂停

点击停止:(音乐回到开头,时间置为0)

 有兴趣的话可以添加音量,和播放的倍数,也可以添加播放列表,可以自行实现

QSoundEffect(低延迟音效)

QSoundEffect使用低延迟方式来播放为压缩的音频文件,如wav文件,常用于播放用户交互时的音效,弹出框提示音、虚拟键盘敲击声等

构造函数:

 常用的函数:

play()开始
stop()停止
source()返回资源位置
stutas()返回当前状态
setVolume()设置音量(0.0-1.0)
setSource()设置资源
setMuted()设置静音
setLoopCount()设置播放次数

播放一个音效:

    QSoundEffect *Sound=new QSoundEffect(this);Sound->setSource(QUrl::fromLocalFile("F:/music/y1361.wav"));//设置资源Sound->setLoopCount(5);Sound->setVolume(1.0);Sound->play();//播放

持续播放一个音效的方法:

将循环计数设置为 0 或 1 表示声音效果将仅播放一次,传递无限期地重复。可以在播放音效时更改循环计数,在这种情况下,它会将剩余的循环更新为新的循环计数QSoundEffect::Infinite

    Sound->setLoopCount(QSoundEffect::Infinite);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_37248.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

招生CRM系统|基于Springboot实现培训机构招生CRM管理系统

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容&#xff1a;Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

JavaWeb开发之——多表查询(21)

一 概述 多表查询—简介多表查询—内连接&外连接多表查询—子查询 二 多表查询—简介 2.1 概念 多表查询顾名思义就是从多张表中一次性的查询出我们想要的数据。 2.2 SQL数据准备 DROP TABLE IF EXISTS emp; DROP TABLE IF EXISTS dept; # 创建部门表 CREATE TABLE de…

UE5笔记【九】蓝图BluePrint;

新建一个第三视角游戏。然后打开关卡蓝图。 长得跟材料编辑器一样。 这里是我们创建Node和新功能的地方。 首先我们新建一个游戏开始的地方。右键&#xff1a;Begin搜索。 我们需要打印一行字&#xff1a;欢迎来到游戏世界。我们需要添加一个打印文本的结点&#xff1a;PrintT…

FilterListenerAjax的介绍

目录 一、Filter 1、Filter概述 2、过滤器链 二、Listener 三、Ajax 1、基本介绍 2、快速入门案例 3、axios 4、JSON 一、Filter 1、Filter概述 ▶ 过滤器 Filter 表示过滤器&#xff0c;是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。过滤器可以把对资源的请…

论文阅读: Disentangled lmage Colorization via Global Anchors

Disentangled lmage Colorization via Global Anchors发表于SIGGRAPH ASIA 2022&#xff0c;是一篇基于深度学习的图像彩色化的工作&#xff0c;简单介绍一下。之前曾分享过一篇彩色化的经典论文&#xff1a;经典论文回顾: Colorization using Optimization。 作者认为图像彩色…

Spring Cloud OpenFeign - 日志配置

项目源码地址&#xff1a;https://download.csdn.net/download/weixin_42950079/87168704 OpenFeign 有 4 种日志级别&#xff1a; NONE: 不记录任何日志&#xff0c;是OpenFeign默认日志级别&#xff08;性能最佳&#xff0c;适用于生产环境&#xff09;。BASIC: 仅记录请求方…

【机器学习入门项目10例】(八):贝叶斯网络-拼写检查器

💥 项目专栏:【机器学习入门项目10例】 文章目录 一、贝叶斯网络-拼写检查器二、数据集介绍三、导包四、读取数据集五、构建拼写检查器5.1 分词操作5.2 计算词频5.3 计算概率5.4 调用入口5.5 贝叶斯网络模型类六、模型测试一、贝叶斯网络-拼写检查器 1)建立一个足够大的文本…

让学前端不再害怕英语单词(四)

|| 欢迎关注csdn前端领域博主: 前端小王hs || email: 337674757qq.com || 前端交流群&#xff1a; 598778642前三章直通车↓↓↓ 让学前端不再害怕英语单词&#xff08;一&#xff09; 让学前端不再害怕英语单词&#xff08;二&#xff09; 让学前端不再害怕英语单词&#xff0…

Java - 利用Nacos做一个动态开关配置功能

Java - 利用Nacos做一个动态开关配置功能前言一. Nacos配置类编写二. 测试三. 展望前言 我公司里有一个Config配置功能&#xff08;我相信这是很普遍的一个功能&#xff09;。简单来说就是&#xff1a; 将相关的键值对放到这个Config配置系统里面。代码里通过这个Config配置系…

【C++中预处理语句 include、define、if】

1.预处理阶段 预处理阶段&#xff0c;在实际发生编译之前就根据对应的预处理语句进行操作&#xff0c;等到预处理阶段完成之后才进行编译阶段 。 2.预处理语句 预处理语句主要有include、define、if 和 program。利用 # 进行标记 2.1 include语句 include语句就是将所包含的…

【点云处理】点云法向量估计及其加速(4)

上篇文章【点云处理】点云法向量估计及其加速(3)介绍了如何使用pcl提供的gpu版本法向量计算接口对点云发向量计算进行加速。不足之处在于点云k近邻查找依然比较耗时&#xff0c;成为影响整体计算性能的瓶颈。这篇文章就如何优化点云K近邻查找效率进行实验。上一篇文章的示例代码…

想要精通算法和SQL的成长之路 - 无重叠区间

想要精通算法和SQL的成长之路 - 无重叠区间前言一. 无重叠区间前言 想要精通算法和SQL的成长之路 - 系列导航 一. 无重叠区间 原题链接 给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量&#xff0c;使剩余区间互…

谷粒学苑_第十天

第十天 视频删除 后端 相关sdk在阿里云视频点播文档的服务端SDK–>Java SDK–>媒资管理–>删除视频 复制前面的InitObject到utils里 删除的方法 DeleteMapping("{id}")public R removeAliyunVideo(PathVariable String id){try{DefaultAcsClient defau…

1000套web前端期末大作业 HTML+CSS+JavaScript网页设计实例 企业网站制作【建议收藏】

一、1000套HTML期末学生结课大作业作品(HTMLCSSJS) 这8年来做了1000多套(HTMLCSSJS)网页设计的学生期末大作业&#xff0c;都是给学生定制的都符合学校或者学生考试期末作业的水平&#xff0c;都是divcss框架原创代码写的&#xff0c;有的有js&#xff0c;有的视频音乐flash的…

Mongodb操作基础 分片

Mongodb分片 MongoDB分片是MongoDB支持的另一种集群形式&#xff0c;它可以满足MongoDB数据量呈爆发式增长的需求。当MongoDB存储海量的数据时&#xff0c;一台机器可能无法满足数据存储的需求&#xff0c;也可能无法提供可接受的读写吞吐量&#xff0c;这时&#xff0c;我们就…

【算法】2022第五届“传智杯”全国大学生计算机大赛(练习赛)

【参考&#xff1a;第五届“传智杯”全国大学生计算机大赛&#xff08;练习赛&#xff09; - 洛谷 | 计算机科学教育新生态】 练习赛满分程序&#xff08;多语言&#xff09;&#xff1a;https://www.luogu.com.cn/paste/fi60s4yu CPU一秒大概运行 10810^8108 次&#xff0c;…

ASEMI肖特基二极管MBR40200PT参数,MBR40200PT规格

编辑-Z ASEMI肖特基二极管MBR40200PT参数&#xff1a; 型号&#xff1a;MBR40200PT 最大重复峰值反向电压&#xff08;VRRM&#xff09;&#xff1a;200V 最大平均正向整流输出电流&#xff08;IF&#xff09;&#xff1a;40A 峰值正向浪涌电流&#xff08;IFSM&#xff0…

imx6ull pro BSP 工具链

BSP&#xff0c;Board Support Package&#xff0c;指板级支持包&#xff0c;是构建嵌入式操作系统所 需的引导程序(Bootload)、内核(Kernel)、根文件系统(Rootfs)和工具链 (Toolchain)。 每种开发板的 BSP 都不一样&#xff0c;并且这些源码都非常庞大。我们把这些源码都 放在…

自动化运维CICD

目录 概述 为什么持续集成和发布可以提高效率 如何实现 1、在linux服务器安装部署代码仓库 2、安装jenkins 使用shell脚本实现CICD 使用pipeline实现CICD 使用Blue Ocean实现CICD 概述 持续集成&#xff08;Continuous Integration&#xff0c;CI)和持续发布&#xff0…

二、进程管理(四)经典同步互斥问题

目录 4.1生产者-消费者问题 4.1.1单类生产者-单类消费者问题 4.1.2多类生产者-多类消费者问题 4.1.3吸烟者问题 4.2读者-写者问题 4.3哲学家进餐问题 分析进程同步和互斥问题的三步&#xff1a; 关系分析&#xff1a;分析问题中的同步&#xff08;前驱关系&#xff09;、…