实现了一个简易的MP3音乐播放器,其音乐播放的核心功能是采用Qt QMultimedia中的QMediaPlayer.界面使用Qt Designer设计,这在很大程度上减小了C++代码量。,要想将播放器做得很完美,还是需要投入不少时间的。
基本功能:
播放、暂停、停止、上一首、下一首、进度调节、列表循环、随机播放、单曲循环、顺序播放、音量调节、窗口移动、最小化到系统托盘、歌曲列表的显示与隐藏以及批量导入等功能。
源代码:
//.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QSystemTrayIcon>
namespace Ui {
class MainWindow;
}
class QAction;
class QMenu;
class QMediaPlayer;
class QMediaPlaylist;
class QSystemTrayIcon;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void positionChanged(qint64);
void durationChanged(qint64);
void playTo(int,int);
void updateSongList(int);
void showOrHideSongList();
void importSongs();
void playLast();
void playOrPause();
void playNext();
void plusSound();
void reduceSound();
void setPlaybackMode1();
void setPlaybackMode2();
void setPlaybackMode3();
void setPlaybackMode4();
void support();
void about();
void setPosition(int);
void iconActivated(QSystemTrayIcon::ActivationReason);
protected:
void mousePressEvent(QMouseEvent *);
void mouseMoveEvent(QMouseEvent *);
void closeEvent(QCloseEvent *);
void paintEvent(QPaintEvent *);
private:
void createContextMenu();
void createSystemTrayIcon();
QPoint relativePos;
int volume;
QAction *restoreAction;
QAction *quitAction;
QAction *seperatorAction1;
QAction *seperatorAction2;
QAction *seperatorAction3;
QAction *seperatorAction4;
QAction *seperatorAction5;
QMenu *trayContextMenu;
QMediaPlayer *player;
QMediaPlaylist *playList;
QSystemTrayIcon *systemTrayIcon;
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
//.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtWidgets>
#include <QMe