天天看点

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函数将这部分数据写入到扬声器。与方法一相比,方法二虽然麻烦,但是这种方法是进行语音编解码和语音网络传输的基础。

方法一:

Qt 播放音频文件
Qt 播放音频文件
Qt 播放音频文件

PCM音频文件的制作参考:

http://blog.csdn.net/caoshangpa/article/details/51218994

音频参数解析参考:

http://blog.csdn.net/caoshangpa/article/details/51218597

测试用PCM音频文件下载链接:

http://download.csdn.net/detail/caoshangpa/9497751

方法二源码:见

的评论

继续阅读