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

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

结尾

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

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

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

相关推荐
小魏冬琅6 分钟前
探索面向对象的高级特性与设计模式(2/5)
java·开发语言
lihao lihao8 分钟前
C++stack和queue的模拟实现
开发语言·c++
TT哇20 分钟前
【Java】数组的定义与使用
java·开发语言·笔记
天天进步201525 分钟前
Lodash:现代 JavaScript 开发的瑞士军刀
开发语言·javascript·ecmascript
姆路33 分钟前
QT中使用图表之QChart概述
c++·qt
假装我不帅34 分钟前
js实现类似与jquery的find方法
开发语言·javascript·jquery
wang_chao11837 分钟前
FFMPEG+Qt 实时显示本机USB摄像头1080p画面以及同步录制mp4视频
qt·ffmpeg·音视频
look_outs38 分钟前
JavaSE笔记2】面向对象
java·开发语言
萧鼎38 分钟前
【Python】高效数据处理:使用Dask处理大规模数据
开发语言·python
Ellie陈1 小时前
Java已死,大模型才是未来?
java·开发语言·前端·后端·python