当有QWebEngineView时,QGraphicsView无法呈现视频

时间:2017-09-28 06:04:35

标签: qt

我正在制作一个非常简单的应用程序,它使用QMediaPlayer / QGraphicsVideoItem / QGraphicsScene / QGraphicsView播放视频,同时,它使用QWebEngineView显示一个网页。

但是,当QWebEngineView显示时,只播放视频的声音。小部件仅显示白色。当未调用QWebEngineView的 - > show()时,视频将正常播放。

我尝试过QVideoWidget。它没有这样的问题。

我认为QGraphicsView的渲染可能与QWebEngine有冲突。

以下是代码:

#include "mainwindow.h"
#include <QApplication>

#include <QWebEngineView>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QMediaPlayer>
#include <QVideoWidget>
#include <QGraphicsVideoItem>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWebEngineView *webview = new QWebEngineView();
    QMediaPlayer *player = new QMediaPlayer();
    QGraphicsVideoItem *item = new QGraphicsVideoItem;
    QVideoWidget *vwid = new QVideoWidget();
    QGraphicsView *gview = new QGraphicsView();

    player->setMedia(QUrl::fromLocalFile("/home/user/Videos/IMG_6201.MOV"));
    //player->setVideoOutput(vwid);
    player->setVideoOutput(item);
    QGraphicsScene *gscene = new QGraphicsScene();
    gview->setScene(gscene);
    webview.setUrl(QUrl("https://www.google.com"));
    gview->scene()->addItem(item);

    //vwid->show();
    player->play();
    webview->show();
    gview->show();

    return a.exec();
}

0 个答案:

没有答案