本文介绍Qt媒体播放器实现。
Qt应用程序有时会涉及到视频文件的播放,Qt提供了QVideoWidget类实现视频和音频的播放,本文基于QVideoWidget类实现一个简单的媒体播放器。
1.自定义类(基于QVideoWidget类)
由于Qt并未提供专门的控件实现视频的显示,这里需要基于QVideoWidget类自定义一个类,再将拖放的QWidget类提升为自定义的类。这里将其命名为“VideoWidget”类。在使用QVideoWidget类时需在“.pro”文件中添加“multimedia”,“multimediawidgets”,参考代码如下:
QT += core gui \
multimedia \
multimediawidgets
1)头文件
参考头文件如下:
#ifndef VIDEOWIDGET_H
#define VIDEOWIDGET_H
#include <QWidget>
#include <QVideoWidget>
#include <QMediaPlayer>
class VideoWidget : public QVideoWidget
{
Q_OBJECT
public:
explicit VideoWidget(QWidget *parent = nullptr);
~VideoWidget() override;
public:
void setMediaPlayer(QMediaPlayer *player);
protected:
void mousePressEvent(QMouseEvent *event) override;
void keyPressEvent(QKeyEvent *event) override;
signals:
private:
QMediaPlayer *mediaPlayer;
public slots:
};
#endif // VIDEOWIDGET_H
2)源文件
参考源文件如下:
#include "videowidget.h"
#include <QEvent>
#include <QKeyEvent>
#include <QMouseEvent>
VideoWidget::VideoWidget(QWidget *parent) : QVideoWidget(parent)
{
}
VideoWidget::~VideoWidget()
{
}
void