使用QT播放音频文件的几种方法:QSound、QSoundEffect、QMediaPlayer

举报
DS小龙哥 发表于 2021/12/10 00:20:54 2021/12/10
【摘要】 一、环境介绍 QT版本:   QT5.12 操作系统: ubuntu18.04  、Windows10 使用QT的音频相关的类,需要在QT的pro工程文件里加入:  QT += multimedia 二、使用QSound播放WAV格式音频文件(未压缩的音频文件):最简单的播放方式...

一、环境介绍

QT版本:   QT5.12

操作系统: ubuntu18.04  、Windows10

使用QT的音频相关的类,需要在QT的pro工程文件里加入:  QT += multimedia

二、使用QSound播放WAV格式音频文件(未压缩的音频文件):最简单的播放方式

2.1 静态方法播放:  这种方法会自己创建一个子线程在后台播放,比较适合在主线程里调用,子线程里调用该函数播放音频文件会报警告: 。QObject: Cannot create children for a parent that is in a different thread.
(Parent is QApplication(0x7ffc5e9f21f0), parent's thread is QThread(0x55ddf74113e0), current thread is QThread(0x7ffc5ebb6588)


  
  1. #include <QSound>
  2. //文件的路径可以是资源文件路径也可以是本地文件系统路径
  3. QSound::play("/mnt/hgfs/linux-share-dir/666.wav");

2.2 加载文件播放


  
  1. #include <QSound>
  2. QSound *bells =new QSound("/mnt/hgfs/linux-share-dir/666.wav");
  3. bells->play();

三、使用QSoundEffect播放WAV格式音频文件(未压缩的音频文件):适合提示音


  
  1. #include <QSoundEffect>
  2. QSoundEffect *effect=new QSoundEffect;
  3. effect->setSource(QUrl::fromLocalFile("/mnt/hgfs/linux-share-dir/666.wav"));
  4. effect->setLoopCount(1); //循环次数
  5. effect->setVolume(0.25f); //音量 0~1之间
  6. effect->play();

四、使用QMediaPlayer播放音频文件: 适合做音乐播放器

4.1 播放wav格式音频文件


  
  1. #include <QMediaPlayer>
  2. QMediaPlayer *player = new QMediaPlayer;
  3. player->setMedia(QUrl::fromLocalFile("/mnt/hgfs/linux-share-dir/666.wav"));
  4. player->setVolume(50); //0~100音量范围,默认是100
  5. player->play();

4.2 播放mp3格式音频文件


  
  1. #include <QMediaPlayer>
  2. QMediaPlayer *player = new QMediaPlayer;
  3. //播放进度的信号提示
  4. connect(player, SIGNAL(positionChanged(qint64)), this, SLOT(positionChanged(qint64)));
  5. player->setMedia(QUrl::fromLocalFile("/mnt/hgfs/linux-share-dir/xiaotiaowa.mp3"));
  6. player->setVolume(50); //0~100音量范围,默认是100
  7. player->play();

 

 

文章来源: xiaolong.blog.csdn.net,作者:DS小龙哥,版权归原作者所有,如需转载,请联系作者。

原文链接:xiaolong.blog.csdn.net/article/details/105629500

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。