Qt制作简单的视频播放器(实现循环播放以及点击暂停)

本文介绍使用Qt多媒体模块创建视频播放器的过程,包括所需类的引入、解码器的配置及基本播放功能的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

qt制作视频播放器需要用到 QVideoWidget,QMediaPlayer,QMediaPlaylist,这几个类,在.pro文件中加入 QT += multimediawidgets即可
虽然已经有了这个类,但是因为qt本身并没有解码器,所有还需要下载一个解码器,解码器网上有很多,可以自己去搜索,博主用的是LAVFilters-0.65,也可以在评论区留下邮箱,我发你。
前期准备工作就这么多,然后就是编写程序。
.h文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QMediaPlayer>
#include <QLabel>

class Widget : public QWidget
{
    Q_OBJECT

protected:
    void mousePressEvent(QMouseEvent *event);

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private:
    bool m_bChecked=false;

    QLabel *label;

    QMediaPlayer *myPlayer;
};
#endif // WIDGET_H

.cpp 文件

#include "widget.h"
#include <QVideoWidget>
#include <QMediaPlayer>
#include <QMediaPlaylist>
#include <QVBoxLayout>
#include <QLabel>
#include <QMouseEvent>
#include <QDebug>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
      myPlayer = new QMediaPlayer(this);
      QVideoWidget *video = new QVideoWidget(this);

      QMediaPlaylist *playlist = new QMediaPlaylist;
      playlist->addMedia(QUrl("C:/Users/dujia/Desktop/a.mp4"));   //添加2个一样的目的是为了实现循环播放
      playlist->addMedia(QUrl("C:/Users/dujia/Desktop/a.mp4"));

      playlist->setCurrentIndex(1);
      playlist->setPlaybackMode(QMediaPlaylist::CurrentItemInLoop);

      video->resize(1104, 622);
      myPlayer->setPlaylist(playlist);
      myPlayer->setVideoOutput(video);
      myPlayer->play();


}
Widget::~Widget()
{
}
void Widget::mousePressEvent(QMouseEvent *event)
{
    m_bChecked=!m_bChecked;
    if(m_bChecked)
    {
        myPlayer->pause();   //第一次点击暂停
    }
    else
    {
        myPlayer->play();  //第二次点击播放
    }


}


好了,有什么不懂的欢迎提问。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加油小杜(接qt定制功能,单模块开发等)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值