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函數将這部分資料寫入到揚聲器。與方法一相比,方法二雖然麻煩,但是這種方法是進行語音編解碼和語音網絡傳輸的基礎。
方法一:
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方法二源碼:見
的評論