zoukankan      html  css  js  c++  java
  • 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,就可以解决运行出错问题

  • 相关阅读:
    CSS伪元素
    leetcode
    软件镜像下载
    VUE项目问题
    js定时操作
    div 禁止点击
    JS String 与 Object 转换
    实用类
    XML文件的应用
    Socket编程
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14656438.html
Copyright © 2011-2022 走看看