【QT实现视频播放】

本文介绍了在QT中使用QMediaPlayer和QVideoWidget实现视频播放的步骤,包括添加多媒体模块、定义类及初始化播放器。文章详细讲解了如何处理资源文件,通过rcc工具进行二进制编译,解决因视频文件过大导致的内存限制问题,并注册资源以实现正常播放。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

想在主界面循环播放视频作为界面背景,鼓捣了好一会儿才弄出来。现将问题记录一下,以供未来或其他朋友参考。


提示:以下是本篇文章正文内容,下面案例可供参考

一、初始化播放器成员

1.引入库

在项目的.pro文件下添加multimedia 和 multimediawidgets,这是多媒体模块:

QT       += core gui multimedia  multimediawidgets

2.定义类

1)在头文件中包含 QMediaPlayer 和 QVideoWidget

#ifndef MAINSCENE_H
#define MAINSCENE_H

#include <QWidget>
#include <QMediaPlayer>
#include <QVideoWidget>
QT_BEGIN_NAMESPACE
namespace Ui { class MainScene; }
QT_END_NAMESPACE
class MainScene : public QWidget
{
    Q_OBJECT
public:
    MainScene(QWidget *parent = nullptr);
    ~MainScene();
private:
    QMediaPlayer *player;
    QVideoWidget *videoWidget;
};
#endif // MAINSCENE_H

2)初始化播放器

void MainScene::playVideo()
{
    player = new QMediaPlayer;
    videoWidget = new QVideoWidget(this);
    player->setVideoOutput(videoWidget);
    //这个资源路径不管是用copy Path 或者copy URL放进去都不行
    //索性我就直接放了个绝对路径,居然就好了,后面再研究怎么回事
    player->setMedia(QUrl::fromLocalFile("C:/Users/Deng/Desktop/QT/Plantbattle/resource/start.mp4"));
    videoWidget->show();
    player->play();
}

将播放器窗口添加到布局中,运行后发现底部有报错
在这里插入图片描述
因为视频文件太大,这里需要将资源文件转换成二进制文件,接下来是转换操作。

二、资源文件设置

Qt为我们提供了一个工具rcc,可以使用该工具对我们的资源文件进行二进制编译,也就是加密,编译后会生成新的文件,然后我们在程序中对新的文件进行注册,就可以正常使用了

1.rcc

在这里插入图片描述

1)在cmd中输入rcc,如果没有出现上图所示,说明你没有为QT配置环境变量,你需要找到你电脑的QT安装位置,并复制其目录下的bin文件路径,将其添加到环境变量Path中。

2)然后在cmd打开你的 .qrc 所在文件位置 ,执行以下此命令,将 .qrc 文件转换成 .rcc文件

rcc -binary resource.qrc -o resource.rcc

3)将生成的 .rcc 文件复制到项目中的 build 目录下

4)注册资源:在构造函数中添加以下代码

QResource::registerResource(".cc文件路径");

5)一般情况下,此时运行应该可以正常播放视频了,如果还报:超出内存限制错误,需要在 .pro文件中添加以下代码:

CONFIG += resources_big
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值