QT简单的视频播放器

这篇具有很好参考价值的文章主要介绍了QT简单的视频播放器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.功能

选择路径下的固定视频格式文件播放,对应的音频和视频同步播放

2.新建一个不含UI界面的QT工程

qt视频播放器,qt,开发语言,c++,c语言

qt视频播放器,qt,开发语言,c++,c语言

特别注意:QT中的路径名不能含中文

 qt视频播放器,qt,开发语言,c++,c语言

设置一个不含UI界面的工程

qt视频播放器,qt,开发语言,c++,c语言

取消构建目录

因为要引入视频播放器的模块,我们在pro中引入对应的模块

qt视频播放器,qt,开发语言,c++,c语言

因为要引入布局格式,所以我们引入水平布局和垂直布局,对应的.h中引入以下两个头文件

qt视频播放器,qt,开发语言,c++,c语言

同样的,我们要引入视频播放的头文件,需要在pro中引入对应的模块,然后添加对应的头文件

qt视频播放器,qt,开发语言,c++,c语言

qt视频播放器,qt,开发语言,c++,c语言

将需要播放声音的头文件引入

#include <QMediaPlayer>

一切准备就绪,开始视频播放器的设置

--》创建对象。然后在.cpp中的构造函数内进行对象的初始化

 qt视频播放器,qt,开发语言,c++,c语言

剩下的步骤在代码中进行中文注释:

.h文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QHBoxLayout>  //水平布局
#include <QVBoxLayout>  //垂直布局
#include <QVideoWidget> //显示视频
#include <QMediaPlayer> //播放声音
#include <QPushButton>  //按钮
#include <QSlider>      //滑动条
#include <QStyle>       //设置图标
#include <QFileDialog>  //选择文件/文件夹
class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();
public slots:
    void chooseVideo();
private:
    QMediaPlayer *mediaPlayer;
    QVideoWidget *videoWidget;
    QVBoxLayout *vbox;
    //创建按钮的两个对象:选择视频按钮和开始播放按钮
    QPushButton *chooseBtn,*playBtn;
    //创建进度条/滑块的对象
    QSlider *slider;
};

#endif // WIDGET_H

 .cpp

#include "widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    //对象实例化
    this->mediaPlayer = new QMediaPlayer(this);
    this->videoWidget = new QVideoWidget(this);
    //设置播放画面的最小窗口
    this->videoWidget->setMinimumSize(400,400);

    //实例化整个窗口的布局---垂直布局
    this->vbox = new QVBoxLayout(this);
    this->setLayout(this->vbox);

    //实例化需要的控件--选择视频按钮
    this->chooseBtn = new QPushButton("选择视频",this);
    //实例化需要的控件--播放按钮--设置图标代替文字
    this->playBtn = new QPushButton(this);
    this->playBtn->setIcon(this->style()->standardIcon(QStyle::SP_MediaPlay));
    //实例化需要的控件--滑块/进度条
    this->slider = new QSlider(this);
    //默认的进度条布局为垂直的,我们修改为水平方向
    this->slider->setOrientation(Qt::Horizontal);

    //实例化一个水平布局,将以上空间放在水平布局内
    QHBoxLayout *hbox = new QHBoxLayout;

    //给水平布局添加控件---顺序固定,依次放置选择视频按钮、播放按钮、进度条
    hbox->addWidget(this->chooseBtn);
    hbox->addWidget(this->playBtn);
    hbox->addWidget(this->slider);

    //将播放窗口和水平布局都添加到垂直布局中
    this->vbox->addWidget(this->videoWidget);
    this->vbox->addLayout(hbox);//布局中添加布局,addLayout();

    //将选择视频对应的按钮和槽函数进行关联
    connect(this->chooseBtn,SIGNAL(clicked()),this,SLOT(chooseVideo()));

}

Widget::~Widget()
{

}

//选择视频的槽函数
void Widget::chooseVideo()
{
    //选择视频,返回一个播放视频的名字
    QString name = QFileDialog::getSaveFileName(this,"选择视频",".","WMV(*.wmv)");
    //设置媒体的声音
    this->mediaPlayer->setMedia(QUrl(name));
    //输出视频画面
    this->mediaPlayer->setVideoOutput(this->videoWidget);
    //播放
    this->mediaPlayer->play();

}

 .pro

#-------------------------------------------------
#
# Project created by QtCreator 2022-12-11T15:14:38
#
#-------------------------------------------------

QT       += core gui multimedia multimediawidgets

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = day4_videoPlayer
TEMPLATE = app

# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

CONFIG += c++11

SOURCES += \
        main.cpp \
        widget.cpp

HEADERS += \
        widget.h

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

 最终的视频播放器(简单版)样式如下

qt视频播放器,qt,开发语言,c++,c语言

------------------------------------------------------------------------------------------------------------------------------------end

 留给读者的问题:

1.在视频播放器中添加声音设置;

2.添加滑动条拖动改变播放对应的进度;

3.将目录下的视频放置在界面中,通过双击实现视频的选择播放;

....

 QT中的类特别多,牢记QT三大护法,对UI界面的绘制和非UI界面的绘制要熟悉,记不住没关系,一定要会找,通过库中的用法去定位自己需要实现的功能,找到对应的类和函数以及其中的枚举,读者在学习时切记要多查阅,多自己实现,QT虽然为我们封装了很多类,如何灵活使用是关键!

加油文章来源地址https://www.toymoban.com/news/detail-780304.html

到了这里,关于QT简单的视频播放器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用VLC开发视频播放器/组件(两种方式:libVLC / VLC-Qt)

    MSVC-2015 Qt 5.14.2 QCreator 参考:心流剑 libVLC 各版本 下载链接 我的下载版本为:3.0.11 sdk/lib文件夹目录 qmake vlc 部分的配置(路径根据自己的修改) 只需要 : libvlc.lib、libvlccore.lib 把 plugins 文件夹、libvlc.dll、libvlccore.dll 复制到 bin_Debug / bin_Release VLC-Qt 下载地址 参考链接1:链接

    2024年02月12日
    浏览(91)
  • QT实现视频播放器

    1.我们需要的头文件 2. .cpp文件 3.ui界面      

    2024年02月12日
    浏览(49)
  • QT5.9实现一个视频播放器播放 暂停进度条

    参考博主 1https://blog.csdn.net/liji_digital/article/details/83691035 参考博主2https://blog.csdn.net/qq_41071706/article/details/89855986 通过选择按钮选择本地视频文件 点击播放按钮播放文本框中的文件(不支持其他类型文件的异常检测) 支持mp4 avi等等 如果不支持见参考博主2的内容 点击暂停按钮

    2023年04月22日
    浏览(47)
  • 【QT项目:视频播放器——Qt opengl编程】通过shader完成显示yuv

    通过Qt opengl不是为了3D绘制,而是为了将视频绘制起来 使用opengl 可以极大降低yuv转rgb的转换开销 1、为什么用QT的opengl 简单,界面可以自动叠加 void paintGL(); // 具体的绘制写在该函数里 void initializeGL(); // 材质初始化 void resizeGL(int width, int height); // 当窗口发生变化(缩放) QO

    2023年04月09日
    浏览(56)
  • Qt 实现简易的视频播放器,功能选择视频,播放,暂停,前进,后退,进度条拖拉,视频时长显示

    1.效果图 2.代码实现 2.1 .pro文件 2.2 .h文件 2.3 .cpp文件

    2024年04月12日
    浏览(44)
  • 【OpenCV+Qt】实现简易视频播放器——支持进度条拖动

    OpenCV实现视频播放器,其思路大致就是在线程中使用OpenCV中的VideoCapture循环读取本地视频的每一帧Mat,然后发送到界面转换成QImage进行显示,而进度条拖动则用到了VideoCapture中的set函数,进度条则是使用Qslider;并且通过自定义新的进度条类实现点击跳转功能; 效果: 1.进行

    2023年04月08日
    浏览(54)
  • linux系统中QT里面的视频播放器的实现方法

          大家好,今天主要和大家聊一聊,如何使用QT中视频播放器的方法。   目录 第一:视频播放器基本简介 第二:视频播放器头文件说明  第三:源文件的具体实现方法 第四:运行效果显示        与音乐播放器一样使用 QMediaPlayer 类,不同的是需要使用 setVideoOutput(QVi

    2024年02月04日
    浏览(55)
  • 嵌入式Qt 开发一个音乐播放器

    上篇文章:RK3568源码编译与交叉编译环境搭建,进行了OK3568开发板软件开发环境搭建,通过编译RK3568的源码,可以得到Qt开发的交叉编译相关工具。 本篇,就来在搭建好的软件开发中,进行Qt软件的开发测试。由于Qt是支持跨平台的,因此本篇的音乐播放器,先在Windows上编写

    2024年02月02日
    浏览(50)
  • Qt之基于QMediaPlayer的音视频播放器(支持常见音视频格式)

    Qt自带了一个Media Player的例子,如下图所示: 但是运行这个例子机会发现,连最基本的MP4格式视频都播放不了。因为QMediaPlayer是个壳(也可以叫框架),依赖本地解码器,视频这块默认基本上就播放个MP4,甚至连MP4都不能播放,如果要支持其他格式需要下载k-lite或者LAVFilter

    2024年02月02日
    浏览(70)
  • Qt/C++编写手机版本视频播放器和Onvif工具(可云台和录像)

    用Qt+ffmpeg写播放器很多人有疑问,为何不用Qt自己的多媒体框架来写,最重要的原因是Qt自带的目前都依赖具体的本地解码器,如果解码器不支持,那就是歇菜的,最多支持个MP4格式,而且在手机上也都是支持本地少部分格式的文件,对于各种视频流完全无能无力。而ffmpeg就不

    2024年02月10日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包