我正在制作一个非常简单的应用程序,它使用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();
}