一.pro文件添加模块
1.multimedia模块
2.multimediawidgets模块
二.添加头文件
#include <QtMultimedia/QtMultimedia>
是一个C++预处理指令,用于在代码中包含Qt Multimedia模块的头文件。这个模块提供了处理多媒体内容的类和函数,例如音频、视频播放、录制等。通过包含这个头文件,你可以在你的项目中使用Qt Multimedia模块的功能。
#include <QtMultimediaWidgets/QVideoWidget>
是一个C++预处理指令,用于在代码中包含Qt Multimedia Widgets模块的头文件。这个模块提供了一些用于显示和控制多媒体内容的控件,例如视频播放器、音频播放器等。通过包含这个头文件,你可以在你的项目中使用Qt Multimedia Widgets模块的功能。
#include <QFileDialog>
是一个C++预处理指令,用于在代码中包含Qt的QFileDialog类。这个类提供了一个文件对话框,允许用户选择文件或目录。通过包含这个头文件,你可以在你的项目中使用QFileDialog类来创建一个文件对话框,以便让用户选择文件或目录。
#include <QUrl>
是一个C++预处理指令,用于在代码中包含Qt的QUrl类。这个类提供了一个URL(统一资源定位符)的表示和操作方法。通过包含这个头文件,你可以在你的项目中使用QUrl类来处理URL相关的操作,例如解析、构造、比较等。
三.创建视频播放器
1.设置窗口大小值
this->setFixedSize(800, 800);
2.设置视频播放器大小
QVideoWidget* videoWin = new QVideoWidget(this);
videoWin->resize(800,800);
3.创建了一個名为player的QMediaPlayer
实例并且将videoWin
设置为player
的视频输出。
QMediaPlayer* player = new QMediaPlayer(this);
player->setVideoOutput(videoWin);
4.调用了QFileDialog
的getOpenFileName
函数,用于选择一个文件,如果用户选择了一个视频文件,则会在QVideoWidget
上播放该视频文件。
QString filePath = QFileDialog::getOpenFileName(this, tr("选择视频文件"), "", tr("MP4 Files (*.mp4);;All Files (*)"));
if (!filePath.isEmpty()) {
player->setMedia(QMediaContent(QUrl::fromLocalFile(filePath)));
player->play();
}
四.效果演示
五.代码演示
#include "widget.h"
#include "ui_widget.h"
#include <QtMultimedia/QtMultimedia>
#include <QtMultimediaWidgets/QVideoWidget>
#include <QFileDialog>
#include <QUrl>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
this->setFixedSize(800, 800);
QVideoWidget* videoWin = new QVideoWidget(this);
videoWin->resize(800,800);
QMediaPlayer* player = new QMediaPlayer(this);
player->setVideoOutput(videoWin);
QString filePath = QFileDialog::getOpenFileName(this, tr("选择视频文件"), "", tr("MP4 Files (*.mp4);;All Files (*)"));
if (!filePath.isEmpty()) {
player->setMedia(QMediaContent(QUrl::fromLocalFile(filePath)));
player->play();
}
}
Widget::~Widget()
{
delete ui;
}