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

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

结尾

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

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

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

相关推荐
Black蜡笔小新11 分钟前
国标GB28181视频监控平台EasyCVR破解偏远地区监控难题的应用实践
音视频
xuxie9937 分钟前
N11 ARM-irq
java·开发语言
wefly20171 小时前
从使用到原理,深度解析m3u8live.cn—— 基于 HLS.js 的 M3U8 在线播放器实现
java·开发语言·前端·javascript·ecmascript·php·m3u8
luanma1509802 小时前
PHP vs C++:编程语言终极对决
开发语言·c++·php
寂静or沉默2 小时前
2026最新Java岗位从P5-P7的成长面试进阶资源分享!
java·开发语言·面试
liwenzhuola2 小时前
解决 Ubuntu 上 Qt Creator 项目编译失败的问题
数据库·qt·ubuntu
kyriewen112 小时前
给浏览器画个圈:CSS contain 如何让页面从“卡成PPT”变“丝滑如德芙”
开发语言·前端·javascript·css·chrome·typescript·ecmascript
智算菩萨3 小时前
MP3音频编码原理深度解析与Python全参数调优实战:从心理声学模型到LAME编码器精细控制
android·python·音视频
娇娇yyyyyy3 小时前
QT编程(18): Qt QItemSelectionModel介绍
开发语言·qt
豆豆的java之旅3 小时前
软考中级软件设计师 数据结构详细知识点(含真题+练习题,可直接复习)
java·开发语言·数据结构