Qt程序添加音乐和音效,解决QtCreator中给程序添加音乐失败的问题

最近写了个Qt小游戏,希望添加个背景音乐,却失败了很多次,下面总结一下经验。

添加音乐或者音效一般需要使用multimedia库。

首先在pro文件中添加QT += multimedia

然后我们可以使用QSound类或者QMediaPlayer类来添加音乐。

方式1:注意该方式中QSound中的音乐格式是wav,而不是mp3,mp3格式在此方式中无法播放,如果是多次调用某音效就使用该方式。

#include <QSound>
QSound *startsound=new QSound(":/qss/backgroundmusic.wav",this);
startsound->play();  //播放
startsound->setLoops(-1);//循环次数,-1代表一直循环

方式2:该方式更适合添加背景音乐。

#include <QMediaPlayer>
QMediaPlayer *startSound;  //创建一个音乐播放器
//connect(startSound,SIGNAL(positionChanged(qint64)),this,SLOT(postitionChanged(qint64)));
startSound>setMedia(QUrl::fromLocalFile("C:\\Users\\TuZhou\\Desktop\\music.wav");
startSound->setVolume(80);  //音量
startSound->play();

请注意该方式中我的音乐路径和方式1中的路径有什么不同吗?
对滴,方式1中音乐路径用的是resources文件中copy来的路径,而方式2中的路径是电脑中的文件路径,前面这个fromLocalfile是从电脑本地寻找文件,该方式中你可以使用绝对路径,也可以使用相对路径,但是不能使用resources中copy来的路径,而且使用\需要用两个\,不然会被当成转义字符导致出错。

如果你想使用resources中copy来的路径,可以这么改:

#include <QMediaPlayer>
QMediaPlayer *startSound;  //创建一个音乐播放器
//connect(startSound,SIGNAL(positionChanged(qint64)),this,SLOT(postitionChanged(qint64)));
startSound>setMedia(QUrl("qrc:/new/sound/sounds/music.mp3");
startSound->setVolume(80);  //音量
startSound->play();

删除fromLocalFile函数,直接使用QUrl()函数转换路径,此时你在resources中copy的路径为:

此时无法使用电脑本地的路径,只能用resources中的路径。

什么?你说你不会添加resources文件?
那行吧,我说下。

先右键项目Add New文件,选择Qt模板中的Resource File。

然后点击Resources下qrc文件界面中的添加前缀然后点击添加文件。
前缀名可以更改,也可以不改。

添加文件时选中你需要的音乐文件打开即可。
不过你要提前把音乐文件放在你项目文件夹中。
然后最后右键项目点击构建然后点击qmake就好了。

方式3:如果你想循环播放某音乐,或者是添加多首音乐播放。

#include <QMediaPlaylist>
#include <QMediaPlayer>QMediaPlayList *musicList = new QMediaPlayList(this);  //添加音乐列表
musicList->addmeida(QUrl("qrc:/new/sound/sounds/backmusic.mp3"))  //添加音乐列表
musicList->addMedia(QUrl("qrc:/new/sound/sounds/di.wav"));
musicList->addMedia(QUrl("qrc:/new/sound/sounds/gameover.mp3"));
musicList->addMedia(QUrl("qrc:/new/sound/sounds/music.wav"));QMidiaPlayer *soundPlayer = new QMediaPlayer(this);  //创建音乐播放器
soundPlayer->setPlaylist(musicList);  //设置音乐列表
soundPlayer->Play();
//以上会使音乐顺序播放
//如果只有一首音乐,同样添加到musicList中,再添加一条
musicList->setPlaybackMode(QMediaPlaylist::CurrentItemInLoop);  //循环播放
//这样就可以单首音乐循环播放

参考文章

Qt程序添加音乐和音效,解决QtCreator中给程序添加音乐失败的问题相关推荐

  1. 怎么把录音导入库乐队_库乐队怎么导入音乐_怎么将音乐导入到库乐队中 库乐队导入音乐的方法...

    摘要 腾兴网为您分享:怎么将音乐导入到库乐队中 库乐队导入音乐的方法,找乐助手,掌上优云,银行帮,小牛等软件知识,以及飞信,虚拟号码软件,健康上网软件,bartender2016,ems录取通知书,管 ...

  2. 解决vscode中golang插件依赖安装失败问题

    解决vscode中golang插件依赖安装失败问题 参考文章: (1)解决vscode中golang插件依赖安装失败问题 (2)https://www.cnblogs.com/feiquan/p/11 ...

  3. dependency报红_解决IDEA中Maven依赖包导入失败报红问题(总结最有效8种解决方案)...

    问题描述: 真的,说来话长,这应该是我花最多时间去解决关于Maven依赖包导入的问题,以前粘贴复制导入,自动下载成功了, 这次怎么搞,怎么让他自动下载都还是红红的一片, 花了大半天,各种尝试,只为搏得 ...

  4. Linux下解决qtcreator中不能输入中文的问题

    在debian环境下用了两天Qt,今天突然发现在Qt 5的代码编辑器里面居然无法输入中文!生成的输入框也同样无法输入中文! 在其他软件里面把中文复制过去,调试也没发现有任何显示问题,搜索了一下,原来是 ...

  5. html5手机不能自动播放音乐,H5案例---解决H5中背景音乐无法自动播放问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 四.完整代码 您的浏览器不支持 audio标签. // 音乐播放 function autoPlayMusic() { // 自动播放音乐效果,解决浏览器 ...

  6. 如何更换计算机中音乐的播放器,电脑中自定义更换QQ音乐歌曲封面图的操作步骤...

    QQ音乐音乐的使用中,小伙伴们遇到故障可以直接在本网站上进行搜索,找到处理故障的方法,那有用户发现听歌的时候,歌曲封面和显示的出处内容与不相符的问题导致我们的听歌体验不是很好,遇到这一个QQ音乐使用中 ...

  7. 怎么把录音导入库乐队_如何将音乐导入到库乐队中 库乐队导入音乐的具体教程...

    如何将音乐导入到库乐队中?库乐队是苹果手机自带的一款音乐软件.想要将本地音乐导入到库乐队中,但是不知道具体怎么操作?下面就是库乐队导入音乐的具体教程,有需要的朋友,可以了解一下. 一.从[音乐]应用导 ...

  8. matlab程序改为m文件名,在MATLAB中,程序文件的扩展名为.m,所以程序文件也称为M文件...

    在MATLAB中,程序文件的扩展名为.m,所以程序文件也称为M文件 答:√ 磷酸果糖激酶-2催化6-磷酸果糖生成的产物是 答:2,6-二磷酸果糖 <人类行为的经济学分析>的作者是( ). ...

  9. java中为按钮添加图片_如何在Java中为字符串添加双引号?

    java中为按钮添加图片 In Java, everything written in double-quotes is considered a string and the text writte ...

最新文章

  1. css设置元素继承父元素宽度_前端新手必知-5种新型的CSS长度单位
  2. 百度网盘的速度又又又又又又被黑了...侮辱性极强...
  3. oracle exp执行失败,Oracle EXP-EXP-00091的错误原因及处理方法
  4. SAP Spartacus PageLayoutComponent 如何知道自己应该显示哪些具体内容
  5. java BigDecimal去掉小数点后的零
  6. 修改linux开机画面
  7. rails log_level
  8. 框架页面中,从子页面刷新父页面问题解决
  9. POJ3264 Balanced Lineup【线段树】
  10. 中国现代远程与继续教育网 统考 大学英语(B)考试大纲
  11. 过滤DataTable中的指定字段重复的行
  12. 使SplitContainer中某个Panel宽度、高度不变
  13. STM32F407获取OV5640摄像头图像及上位机解码(一维码二维码)
  14. 面试中问到fiddler的那些问题
  15. Raspberry Pi
  16. Nand2Tetris Project1
  17. 【C++学习笔记】复合类型和const限定符
  18. 2019年胡润百富榜发布,比特大陆创始人詹克团成「中国区块链首富」!
  19. LeetCode 玩筹码
  20. Python爬取‘跌妈不认’股票数据,绘制可视化图

热门文章

  1. 几个shell初学者必会脚本
  2. NGINX+UWSGI+PYTHON+FLASK环境搭建——————学习笔记
  3. 数据分析展示(通过Mysql和Python对数据清洗和整合后,利用tableau搭建数据看板进行可视化显示,最后对数据结果给出简要的个人分析)
  4. 电脑的wifi天线原理_无线网络WIFI天线原理
  5. python3多线程批量去除电视剧的片头片尾
  6. 不超过10万元 小型车兄弟车型你选谁?(1)
  7. 教你轻松拿下百度音乐播放器mp3地址
  8. 批量在线伪原创工具,文章聚合采集发布工具
  9. 华东师范大学 计算机 博士 毕业论文,华师大软件学院历年培养研究生学位论文情况.docx...
  10. JavaSE第七天(面向对象:权限和继承)