【三十七】【QT开发应用】使用QVideoWidget播放视频,QT模块缺失时更新安装模块步骤(利用虚拟网址打开应用加速)

效果展示



  • 下面有一个按钮打开视频,点击按钮之后会出现一个弹窗选择文件,默认打开的是D盘,并且选择的文件的类型有.mp4 .flv或者所有文件。
  • 选择正确的视频文件之后可以正常播放视频。

widget.h 主窗口头文件

cpp 复制代码
#pragma once

#include <QtWidgets/QWidget>
#include <QtMultimediaWidgets>
#include "ui_widget.h"


class widget : public QWidget
{
    Q_OBJECT

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

private slots:
    void on_btnOpen();

private:
    Ui::widgetClass ui;

    QVideoWidget* m_output = nullptr;
};
  • 头文件包含两个模块头文件,QtWidgetsQtMultimediaWidgets ,QtMultimediaWidgets 确实是一个独立的模块,它扩展了 QtMultimedia,提供了用于在Qt中显示视频的功能,如视频播放窗口等。
  • 槽函数on_btnOpen是连接按钮的槽函数.

widget.cpp 主窗口源文件

cpp 复制代码
#include "widget.h"
#include "QtWidgets"


widget::widget(QWidget *parent)
    : QWidget(parent)
{
    ui.setupUi(this);

    QVBoxLayout* pVLayMain = new QVBoxLayout(this);
    QHBoxLayout* pHLay1 = new QHBoxLayout(this);

    m_output = new QVideoWidget(this);
    //用来播放视频的窗口
    QPushButton* pBtnOpen = new QPushButton(this);

    m_output->setMinimumSize(600, 400);

    pBtnOpen->setFixedSize(80, 40);
    pBtnOpen->setText("打开视频");

    pHLay1->addStretch();
    pHLay1->addWidget(pBtnOpen);
    pHLay1->addStretch();

    pVLayMain->addWidget(m_output);
    pVLayMain->addLayout(pHLay1);



    connect(pBtnOpen, &QPushButton::clicked, this, &widget::on_btnOpen);
}

widget::~widget()
{}

void widget::on_btnOpen() {
    QString filename = QFileDialog::getOpenFileName(this, "请选择视频文件", "D:/", "视频文件(*.mp4 *.flv);;所有文件(*.*);;");
    //this父窗口,对话框标题,默认打开目录,文件类型过滤器用;;分开
    if (filename.isEmpty())
        return;
	QAudioOutput* audioOutput = new QAudioOutput(this);
	//音频
	
    QMediaPlayer* pPlayer = new QMediaPlayer(this);
	//视频
	
    pPlayer->setAudioOutput(audioOutput);
    //设置音频
    pPlayer->setSource(QUrl::fromLocalFile(filename));
    //设置视频
    pPlayer->setVideoOutput(m_output);
    //设置视频播放对象
    pPlayer->play();
    //视频播放
}
  • QVideoWidget用来承载视频播放的窗口对象.
  • QFileDialog::getOpenFileName打开文件,返回值文件全局路径.
  • QAudioOutput表示音频的对象.
  • setAudioOutput设置音频.
  • setSource设置视频源路径,全局路径转化为QUrl格式,QUrl::fromLocalFile(filename).
  • setVideoOutput设置视频播放的窗口对象.
  • play视频开始播放.

更新QT模块步骤

首先找到这个文件夹,里面有MaintenanceTool.exe应用的QT文件夹.

然后在这个文件夹中打开cmd命令行.

命令行输入以下代码
MaintenanceTool.exe --mirror https://mirrors.ustc.edu.cn/qtproject

如果系统不让你添加组件,强制要求你更新组件的话,你更新完组件之后重新启动就可以添加组件了.

结尾

最后,感谢您阅读我的文章,希望这些内容能够对您有所启发和帮助。如果您有任何问题或想要分享您的观点,请随时在评论区留言。

同时,不要忘记订阅我的博客以获取更多有趣的内容。在未来的文章中,我将继续探讨这个话题的不同方面,为您呈现更多深度和见解。

谢谢您的支持,期待与您在下一篇文章中再次相遇!

相关推荐
ajassi20006 小时前
开源 C++ QT Widget 开发(七)线程--多线程及通讯
linux·c++·qt·开源
bdgtd881786 小时前
动态修补C扩展模块的函数指针有哪些风险?安全的修补方案是什么?
c语言·开发语言·安全
luquinn6 小时前
实现统一门户登录跳转免登录
开发语言·前端·javascript
Forward♞6 小时前
Qt——界面美化 QSS
开发语言·c++·qt
##学无止境##9 小时前
解锁Java分布式魔法:CAP与BASE的奇幻冒险
java·开发语言·分布式
做一位快乐的码农9 小时前
基于Spring Boot的旅行足迹分享社区的设计与实现/基于java的在线论坛系统
java·开发语言·spring boot
code bean13 小时前
【C#】获取不重复的编码(递增,非GUID)
开发语言·c#
阿里嘎多哈基米13 小时前
二、JVM 入门——(三)栈
java·开发语言·jvm·线程·
MonkeyKing_sunyuhua14 小时前
什么是JSON-RPC 2.0,在项目中应该怎么使用
qt·rpc·json
雷达学弱狗14 小时前
anaconda本身有一个python环境(base),想用别的环境就是用anaconda命令行往anaconda里创建虚拟环境
开发语言·python