【三十七】【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

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

结尾

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

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

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

相关推荐
侃侃_天下2 天前
最终的信号类
开发语言·c++·算法
kaixin_啊啊2 天前
突破限制:Melody远程音频管理新体验
音视频
echoarts2 天前
Rayon Rust中的数据并行库入门教程
开发语言·其他·算法·rust
Aomnitrix2 天前
知识管理新范式——cpolar+Wiki.js打造企业级分布式知识库
开发语言·javascript·分布式
每天回答3个问题2 天前
UE5C++编译遇到MSB3073
开发语言·c++·ue5
伍哥的传说2 天前
Vite Plugin PWA – 零配置构建现代渐进式Web应用
开发语言·前端·javascript·web app·pwa·service worker·workbox
ai产品老杨2 天前
解锁仓储智能调度、运输路径优化、数据实时追踪,全功能降本提效的智慧物流开源了
javascript·人工智能·开源·音视频·能源
MThinker2 天前
02-Media-8-uvc_with_csc.py 使用硬件解码的USB摄像头(UVC)捕获视频并显示的程序
音视频·智能硬件·micropython·canmv·k230
向阳花开_miemie2 天前
Android音频学习(十八)——混音流程
学习·音视频
小莞尔2 天前
【51单片机】【protues仿真】 基于51单片机八路抢答器系统
c语言·开发语言·单片机·嵌入式硬件·51单片机