基于QT实现一个多功能媒体播放器,它能播放音频(如mp3),视频
媒体播放器界面,有进度条,可展示总播放时间、当前播放时间,进度条可拖动,有播放、暂停键,有快进、快退键,上一曲下一曲,静音,调节音量,双击播放歌曲,以及简单的歌词同步。
主界面如下:

创建三个本地文件夹分别存放MV,歌词和音乐文件




工程结构目录如下(整个结构没有设计好,所以每个视频都要单独创建文件):

mainwindow.h代码如下:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QMediaPlayer>
#include <QMediaPlaylist>
#include <QMediaPlayer>
#include <QStringList>
#include <QDir>
#include <QTime>
#include <QTimer>
#include<videoplayer.h>
#include<videoplayer_qr.h>
#include<videoplayer_cq.h>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
VideoPlayer *v1;
videoplayer_qr *v_qr;
videoplayer_cq *v_cq;
bool isPlay=false;
bool ismute=false;
QString MusicPath="C:Users44637MusicQTMusic";
QString LrcPath="C:Users44637MusicQTLrc";
QStringList fileList; //文件名称
QStringList lrcList;
QMediaPlaylist *PlayerList;
QMediaPlayer *Player;
int moved;
int iCount=0;
QTimer *timer2;
QMap<int, QString> map;
QMap<QString, QString> *map2;
void getHeader(const char *str, QString &des);
void getTime(QString line);//改动二
private slots:
void init();//初始化
void addItem(QString name); //把歌名添加到musicname上
QStringList getFileNames(const QString &path); //获取路径下所有文件名
QStringList getLrcNames(const QString &path); //获取路径下所有文件名
void slotButtonStart();//播放
void slotButtonLast();//上一首
void slotButtonNext();//下一首
void slotShowCurrentMusic();//显示当前播放的歌曲
void volumChange(int);//控制音量
void positionChange(qint64 position);//进度条随着音乐播放变化
void seekChange(int position); //滑动滑动条快进、倒退音乐,且音乐已播放时长也跟着变化
void musicTime();//歌曲总时间
void slotShowCurrentLrc();
void showWord(int time);//显示歌词
void initlrc(const QString& fileName);//初始化歌词
void button_style();//按钮样式
void changestartbutton();
void cleanmap();
void playto(int i,int );//双击播放
void video_click_wm();//播放相应视频
void video_click_qr();
void video_click_cq();
void mute();//静音
void fastForward();//快进
void fastBack();//快退
};
#endif // MAINWINDOW_H










