用QMediaPlayer实现MP3音乐播放器

这篇博客介绍了一个基于Qt的简易MP3音乐播放器的实现,利用QMediaPlayer进行音乐播放。该播放器具备播放、暂停、停止、进度调节等基本功能,还支持列表循环、音量调节和系统托盘操作。源代码包括了UI设计和事件处理等关键部分。
摘要由CSDN通过智能技术生成

实现了一个简易的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
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值