天天看點

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

方法二源碼:見

的評論

繼續閱讀