利用Qt自带的媒体模块实现播放mp4文件

 更新时间:2024年04月26日 10:08:04   作者:Qt hello  
这篇文章主要为大家详细介绍了如何使用Qt自带的媒体模块,播放mp4等媒体文件功能,文中的示例代码讲解详细,有需要的小伙伴可以参考一下

一. 需求

利用Qt自带的媒体模块,播放mp4等媒体文件。

二. 实现

pro文件修改

QT       += core gui multimedia  multimediawidgets

ui中放一个QWidget,并提升为QVideoWidget.

widget.h 文件。

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

#include <QMediaPlayer>
#include <QVideoWidget>
#include <QMediaPlaylist>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private slots:
    void on_fileBtn_clicked();

private:
    Ui::Widget *ui;
    QMediaPlayer* mediaPlayer;
    QMediaPlaylist* mediaPlayList;
};
#endif // WIDGET_H

widget.cpp 文件

#include "widget.h"
#include "ui_widget.h"

#include <QFileDialog>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    mediaPlayer = new QMediaPlayer(this);
    mediaPlayList = new QMediaPlaylist(mediaPlayer);
    mediaPlayer->setVideoOutput(ui->widget);
}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_fileBtn_clicked()
{
    QString file = QFileDialog::getOpenFileName(this,"open file",".","*.*");
    if(file.isEmpty())
        return;

    mediaPlayList->clear();
    mediaPlayList->addMedia(QUrl::fromLocalFile(file));
    mediaPlayList->setCurrentIndex(0);
    mediaPlayer->setPlaylist(mediaPlayList);
    mediaPlayer->play();
}

涉及到媒体,就涉及到编解码,所以就需要安装编解码器,直接安装这个即可:

https://www.codecguide.com/download_kl.htm

不然会出现如下错误:  DirectShowPlayerService::doRender: Unresolved error code 0x80040266 

三. 效果

到此这篇关于利用Qt自带的媒体模块实现播放mp4文件的文章就介绍到这了,更多相关Qt播放mp4文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++线性时间的排序算法分析

    C++线性时间的排序算法分析

    这篇文章主要介绍了C++线性时间的排序算法分析,是非常经典的非比较排序算法,对于C++程序员有很大的借鉴价值,需要的朋友可以参考下
    2014-08-08
  • C++如何去除cpp文件的注释详解

    C++如何去除cpp文件的注释详解

    在日常工作中,我们会给c/c++代码写上一些注释,但是往往为了保持最终的代码尽可能小,我们需要删除注释,手动删除太缓慢了,下面这篇文章主要给大家介绍了关于C++如何去除cpp文件注释的相关资料,需要的朋友可以参考下
    2022-09-09
  • Qt自定义控件实现多彩色仪表盘

    Qt自定义控件实现多彩色仪表盘

    这篇文章主要为大家详细介绍了Qt自定义控件实现多彩色仪表盘,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • C++ WideCharToMultiByte()函数案例详解

    C++ WideCharToMultiByte()函数案例详解

    这篇文章主要介绍了C++ WideCharToMultiByte()函数案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 关于C++继承你可能会忽视的点

    关于C++继承你可能会忽视的点

    继承是面向对象三大特性之一,有些类与类之间存在特殊的关系,下面这篇文章主要给大家介绍了关于C++继承你可能会忽视的点,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-02-02
  • 详解C++中左值与右值的概念与应用

    详解C++中左值与右值的概念与应用

    左值(Lvalue)和右值(Rvalue)是C++和其他编程语言中用来区分表达式的概念。这篇文章主要为大家详细介绍了它们的概念与应用,需要的可以参考一下
    2023-03-03
  • C语言数据结构与算法之时间空间复杂度入门

    C语言数据结构与算法之时间空间复杂度入门

    这篇文章主要为大家介绍了C语言数据结构与算法之时间空间复杂度的入门教程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-02-02
  • C/C++ Qt MdiArea 多窗体组件应用教程

    C/C++ Qt MdiArea 多窗体组件应用教程

    MDI窗体控件类似于画布,该控件只具备展示窗体的功能,无法实现生成窗体,所以我们需要在项目中手动增加自定义的Dialog对话框,并对该对话框进行一定的定制,这篇文章主要介绍了C/C++ Qt MdiArea 多窗体组件应用,需要的朋友可以参考下
    2021-12-12
  • 使用C语言实现字符串左旋和右旋问题

    使用C语言实现字符串左旋和右旋问题

    这篇文章主要介绍了使用C语言实现字符串左旋和右旋问题,需要的朋友可以参考下
    2018-07-07
  • C++设置事件通知线程工作的方法

    C++设置事件通知线程工作的方法

    这篇文章主要介绍了C++设置事件通知线程工作的方法,是Windows应用程序设计中非常实用的技巧,需要的朋友可以参考下
    2014-10-10

最新评论