1. 程式人生 > >QT5:C++實現基於Multimedia的音樂播放器(序)

QT5:C++實現基於Multimedia的音樂播放器(序)

播放列表 nbsp eight 自帶 讀取 set 技術 strong ati

前段時間C++課設,決定做個播放器,於是參考了網上的代碼後,做了個很簡陋的音樂播放器(只寫了MP3格式)出來,雖然功能甚少,但還是決定把過程記錄一下。

成品如下圖:

技術分享圖片

播放器功能:

  • 上、下一首,音量控制
  • 單曲和列表循環、隨機播放模式
  • 添加歌曲(因為懶,連刪除歌曲都沒寫)

所用技術:QT5,C++

整個程序繼承QT的QWidget完成,界面用qss修飾(qss的語法和CSS幾乎一模一樣),整個播放器主要靠QT的multimedia來完成音樂解碼和播放。QMediaplayer用於解析音頻文件,QMediaPlaylist作為一個媒體播放列表,保存媒體的路徑(沒有寫數據庫來保存歌曲,只是讀取本地路徑),這個類也自帶了播放模式。

QMediaPlaylist作為一個媒體播放列表,保存媒體的路徑。

* 此類有一個函數,void setPlaybackMode(PlaybackMode mode),

* 而enum PlaybackMode { CurrentItemOnce, CurrentItemInLoop, Sequential, Loop, Random }

* 分別為播放一次,單循環,順序,列表循環,隨機播放。

按鈕用QPushButton創建,加載外部資源通過qss來裝飾按鈕外觀。

音量和音樂進度條用QSlider創建,音樂進度時間則是用QLabel(可以放置圖片,文字等內容的一個類)和QTimer(定時器)來完成。

圖片上的歌曲播放列表用QListWidget創建,通過QFileInfo分割本地路徑獲取歌名。本來想重寫鼠標右鍵函數來添加、刪除、播放歌曲的,但最終因為懶,沒寫

QT5:C++實現基於Multimedia的音樂播放器(序)