#ifndef MUSIC_H #define MUSIC_H #include #include #include #include #include #include #include #include #include #include #include #include #include QT_BEGIN_NAMESPACE namespace Ui { class music; } QT_END_NAMESPACE /* 媒体信息结构体 */ struct MediaObjectInfo { /* 用于保存歌曲文件名 */ QString fileName; /* 用于保存歌曲文件路径 */ QString filePath; }; class music : public QDialog { Q_OBJECT public: music(QWidget *parent = nullptr); ~music(); int angle = 0; void stopmusic(); private: Ui::music *ui; //定时器 QTimer *rotationTimer; /* 媒体播放器,用于播放音乐 */ QMediaPlayer *musicPlayer; /* 媒体列表 */ QMediaPlaylist *mediaPlaylist; /* 音乐列表 */ QListWidget *listWidget; /* 媒体信息存储 */ QVector mediaObjectInfo; /* 用于遮罩 */ QWidget *listMask; /* 扫描歌曲 */ void scanSongs(); /* 媒体播放器类初始化 */ void mediaPlayerInit(); /* 音乐布局函数 */ void musicLayout(); void image_rotate(int Addangle); private slots: /* 播放按钮点击 */ void btn_play_clicked(); /* 下一曲按钮点击*/ void btn_next_clicked(); /* 上一曲按钮点击 */ void btn_previous_clicked(); /* 媒体状态改变 */ void mediaPlayerStateChanged(QMediaPlayer::State); /* 列表单击 */ void listWidgetCliked(QListWidgetItem*); /* 媒体列表项改变 */ void mediaPlaylistCurrentIndexChanged(int); /* 媒体总长度改变 */ void musicPlayerDurationChanged(qint64); /* 媒体播放位置改变 */ void mediaPlayerPositionChanged(qint64); /* 控制音量条显示 */ void on_btn_volume_toggled(bool checked); /* 播放进度条松开 */ void durationSliderReleased(); /* 音量控制 */ void volume_change(); void on_pushButton_clicked(); void on_pushButton_2_clicked(); signals: void Music_close(bool FlMusic); void Music_Minisize(bool FlMusic); void Image_rate(bool t); private slots: void ImageRate(bool t); }; #endif