Qt 播放音频文件

简介: Qt播放音频文件的方法有好多中,简单介绍几种不过一下几种方式都需要在Qt工程文件中添加


QT       += multimedia


第一


QMediaPlayer类

可以播放MP3文件,同时使用也是最简单的了,具体代码

{
    player = new QMediaPlayer;
    connect(player, SIGNAL(positionChanged(qint64)), this, SLOT(positionChanged(qint64)));
    player->setMedia(QUrl::fromLocalFile("E:\\CloudMusic\\林沁简介 - 太阳的后裔 MIX.mp3"));
    player->setVolume(30);
    player->play();
}

该中实现方式适合单个文件的,如果有多个文件需要播放,那么需要使用下面的方式

{
        playlist = new QMediaPlaylist;
        playlist->addMedia(QUrl::fromLocalFile("E:\\CloudMusic\\林沁简介 - 太阳的后裔 MIX.mp3"));
        playlist->addMedia(QUrl::fromLocalFile("E:\\CloudMusic\\芭比 - 触电 (完整版).mp3"));
        playlist->addMedia(QUrl::fromLocalFile("E:\\CloudMusic\\郭芯语 - 快点告诉你.mp3"));
        playlist->setCurrentIndex(1);
        player = new QMediaPlayer;
        player->setPlaylist(playlist);
        player->play();
    }

源代码工程: http://download.csdn.net/detail/z609932088/9502687



第二


使用QsoundEffect类


核心代码

    effect.setSource(QUrl::fromLocalFile("E:\\CloudMusic\\林沁简介 - 太阳的后裔 MIX.wav"));
    effect.setLoopCount(QSoundEffect::Infinite);
    effect.setVolume(1.0f);
    effect.play();

源代码工程: http://download.csdn.net/detail/z609932088/9502709


第三种,是播放pcm裸流的


详见“灿哥哥的博客”


连接地址:http://blog.csdn.net/caoshangpa/article/details/51224678


原文连接内容


这两种方法都需要在.pro文件中加入multimedia模块。方法一是通过QAudioOutput实现的,先用QFile打开PCM文件,然后进行音频参数设置,最后调用QAudioOutput的start函数进行播放;方法二也用到了QAudioOutput,先将PCM文件读取到内存,然后进行音频参数设置,最后从内存中定时读取部分数据,调用QIODevice的write函数将这部分数据写入到扬声器。与方法一相比,方法二虽然麻烦,但是这种方法是进行语音编解码和语音网络传输的基础。


方法一:

image.pngimage.pngimage.pngPCM音频文件的制作参考:http://blog.csdn.net/caoshangpa/article/details/51218994


音频参数解析参考:http://blog.csdn.net/caoshangpa/article/details/51218597


测试用PCM音频文件下载链接:http://download.csdn.net/detail/caoshangpa/9497751


方法二源码:见http://blog.csdn.net/caoshangpa/article/details/51224678的评论


目录
相关文章
|
4天前
【qt】如何读取文件并拆分信息?
【qt】如何读取文件并拆分信息?
9 0
|
1月前
|
C++
基于QT实现的拷贝文件以及实时进度条(简易版)
1.基于按钮或者菜单栏的槽里去写逻辑函数(我这边用的是菜单栏),ui实现的进度条 2.创建两个对象,一个是源文件,一个是目标文件分别用getopenfileName、getsavefileName函数即可。 3.利用QFile类去实现对两个文件的创建,因为QFile中可以获取文件的属性已经读写等。 4.循环的去读取源文件中的数据,然后写入目标文件
183 6
|
10天前
|
存储 算法 C++
【C++】C++ QT实现Huffman编码器与解码器(源码+课程论文+文件)【独一无二】
【C++】C++ QT实现Huffman编码器与解码器(源码+课程论文+文件)【独一无二】
|
11天前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
75 4
|
12天前
|
XML 开发框架 API
【Qt 学习笔记】QWidget的windowTitle属性 | windowIcon属性 | qrc文件机制
【Qt 学习笔记】QWidget的windowTitle属性 | windowIcon属性 | qrc文件机制
25 1
|
4天前
|
安全 C++ Windows
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
|
2月前
Qt颜色、文件、字体对话框
Qt颜色、文件、字体对话框
20 1
|
1月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
99 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
5天前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
15 0
Qt开发网络嗅探器02
Qt开发网络嗅探器02