1. 目标
这一节我们来写一个功能完备的Player类,实现以下功能:
-
播放控制(播放/暂停)
-
音量控制
-
播放顺序控制
-
播放进度控制
2. 实现
实现播放功能可以用libVlc、ffmpeg和QMediaPlayer这几种方案,但libVlc和ffmpeg都太重了,我们的需求只是简单的播放音乐,所以当前选择QMediaPlayer。
创建一个player模块,包含一个继承QObject的Player类:
player
- player.pri
- player.h
- player.cpp
在player.pri中添加multimedia模块:
QT += multimedia
Qt6对multimedia模块进行了大幅修改,与Qt5相比有巨大的不同(参考Changes to Qt Multimedia | Qt Multimedia 6.7.2),我们的代码Qt6以上才能编译,可以在pri文件中加入限制:
lessThan(QT_MAJOR_VERSION, 6): error("The minimum supported version is QT6"
2.1 播放控制
创建一个QMediaPlayer对象:
// player.h
class QMediaPlayer;
class Player : public QObject {
...
private:
QMediaPlayer *m_player = nullptr;
};
// player.cpp
#include "player.h"
#include <QMediaPlayer>
Player::Player(QObject

最低0.47元/天 解锁文章
832





