• Qt 使用QMediaPlayer + QVideoWidget播放视频文件


    环境:
    QT版本:5.6.2
    开发环境:VS2013
    系统版本:windows 7 64bit


    前言

    我们需要用QT播放视频,如制作一个视频播放器等。

    1.代码实现

    1.1 pro添加

    QT += multimedia multimediawidgets

    1.2 头文件添加

    1 //要包含下面的两个文件,必须在.pro文件中添加  QT += multimedia  multimediawidgets
    2 #include <QMediaPlayer>
    3 #include <QVideoWidget>
    4 #include <QMediaPlaylist>

    1.3 代码实现

     1     QWidget *widget = new QWidget;
     2     QVBoxLayout *layout = new QVBoxLayout;
     3 
     4     QMediaPlayer* player = new QMediaPlayer;
     5     QVideoWidget* videoWidget = new QVideoWidget;
     6     QMediaPlaylist* playlist=new QMediaPlaylist;
     7 
     8     videoWidget->setAspectRatioMode(Qt::IgnoreAspectRatio);
     9     videoWidget->setFullScreen(true);
    10 
    11     layout->addWidget(videoWidget);
    12     widget->setLayout(layout);
    13 
    14     playlist->clear();
    15     playlist->addMedia(QUrl::fromLocalFile("C:\a.mp4"));
    16     player->setPlaylist(playlist);
    17 
    18     QFile file("C:\a.mp4");
    19     if(!file.open(QIODevice::ReadOnly))
    20         qDebug() << "Could not open file";
    21 
    22     player->setVideoOutput(videoWidget);
    23     player->setPlaylist(playlist);
    24 
    25     widget->showFullScreen();
    26     player->play();

    2.效果

    3.注意事项
    3.1 部署
    在其他电脑上部署的时候需要注意包含
    a.mediaservice plugin
    b.QT5MULTIMEDIA.DLL

    QT5NETWORK.DLL
    QT5GUI.DLL
    QT5CORE.DLL
    c.QT5MULTIMEDIAWIDGETS.DLL

    QT5MULTIMEDIA.DLL
    QT5WIDGETS.DLL
    QT5GUI.DLL
    QT5CORE.DLL
    QT5OPENGL.DLL
    3.2 播放无图像
    播放无图像,并报错:

    DirectShowPlayerService::doRender: Unresolved error code 80040266

    原因:
    Qt 中的多媒体播放,底层是使用DirectShowPlayerService,所以安装一个DirectShow解码器,例如LAV Filters,就可以解决运行出错问题

  • 相关阅读:
    Day01 基本SQL SELECT
    Java IO流
    排序: 选择排序
    Java的数据存储机制
    Java反射基础笔记
    学习面向对象的三条主线之三 面向对象的三大特征 关键字
    学习面向对象的三条主线之二 面向对象的三大特征
    Oracle数据库知识积累
    office技巧
    如何读书
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14656438.html
Copyright © 2020-2023  润新知