基于Qt的音乐播放器课程设计报告

loading 分享 2026-8-20 下载文档

#include #include #include

#include \#include \

#define TIME_MS_DURATION 1000 #define INIT_SYSTEM_VOLUME 50

enum PlaybackMode //播放模式 {

CURRENT_ITEM_ONCE = 0, //单曲播放 CURRENT_ITEM_IN_LOOP = 1, //单曲循环 SEQUENTIAL = 2, //顺序播放 LOOP = 3, //列表循环 RANDOM = 4 //随机播放

};

class MusicPlayer : public QObject {

Q_OBJECT

signals:

void signalPositionChanged(QString updateTime); void signalDurationChanged(qint64 duration);

public slots:

void slotPositionChanged(qint64 position); void slotDurationChanged(qint64 duration);

public:

explicit MusicPlayer(QObject *parent = 0);

const qint64 getTotalPlayerTime(void) const; void setTotalPlayerTime(const qint64 time);

const qint64 getCurrentPlayerTime(void) const; void setCurrentPlayerTime(const qint64 time);

/// 歌曲播放逻辑

QMediaPlayer ¤tMediaPlayer(void);

/// 歌曲列表获取逻辑

QMediaPlaylist &musicPlayList(void); QStringList &songsNameList(void);

/// 歌曲歌词获取逻辑

void getCurrentSongLyric(void);

QList &lyricIndexList(void); QStringList &lyricContentList(void);

private:

/// 歌曲播放逻辑

qint64 m_totalPlayerTime; qint64 m_currentPlayerTime; QMediaPlayer m_player;

/// 歌曲列表获取逻辑

SongsFile *m_songsFile;

QMediaPlaylist m_musicPlayList; QStringList m_songsNameList;

/// 歌曲歌词获取逻辑

QList m_lyricIndexList; QStringList m_lyricContentList; };

#endif // MUSICPLAYER_H

(2).cpp文件

musicplayer.cpp的头文件如下:

#include \

#include

#include \

同时在cpp文件写入了信号与槽传值连接的方法,代码如下:

MusicPlayer::MusicPlayer(QObject *parent) : QObject(parent) {

m_songsFile = new SongsFile(this);

m_songsFile->initSongsListAndSongsNameList(m_musicPlayList, m_songsNameList);

m_player.setPlaylist(&m_musicPlayList); m_player.setVolume(INIT_SYSTEM_VOLUME);

connect(&m_player, SIGNAL(durationChanged(qint64)), this, SLOT(slotDurationChanged(qint64))); connect(&m_player, SIGNAL(positionChanged(qint64)), this, SLOT(slotPositionChanged(qint64))); }

得到siganl后相应执行的槽函数(position),具体代码如下:

void MusicPlayer::slotPositionChanged(qint64 position) {

m_currentPlayerTime = position / TIME_MS_DURATION; //歌曲进度条显示

QTime currentTime((m_currentPlayerTime/3600)`, (m_currentPlayerTime/60)`,

m_currentPlayerTime`, (m_currentPlayerTime*1000)00);

QTime totalTime((m_totalPlayerTime/3600)`, (m_totalPlayerTime/60)`,

m_totalPlayerTime`, (m_totalPlayerTime*1000)00);

QString updateTime = currentTime.toString(\ + \

emit signalPositionChanged(updateTime); }

void MusicPlayer::slotDurationChanged(qint64 duration) {

m_totalPlayerTime = duration / TIME_MS_DURATION; //TIME_MS_DURATION 1000

emit signalDurationChanged(m_totalPlayerTime); }

以及对播放时间、播放列表等的声明,代码如下:

const qint64 MusicPlayer::getTotalPlayerTime(void) const {

return m_totalPlayerTime / TIME_MS_DURATION; //INIT_SYSTEM_VOLUME 50 }

void MusicPlayer::setTotalPlayerTime(const qint64 time) {

m_totalPlayerTime = time; }

const qint64 MusicPlayer::getCurrentPlayerTime(void) const {

return m_currentPlayerTime; }

void MusicPlayer::setCurrentPlayerTime(const qint64 time) {

m_currentPlayerTime = time;


基于Qt的音乐播放器课程设计报告.doc 将本文的Word文档下载到电脑
搜索更多关于: 基于Qt的音乐播放器课程设计报告 的文档
相关推荐
相关阅读