QGraphicsVideo中的QGraphicsVideoItem

时间:2015-10-09 22:56:50

标签: qt qgraphicsview

我试图在QT5.5中的QGraphicsView中绘制视频。这是代码

QString path = "video.mp4";

qDebug() << QFile::exists(path);

ui->graphicsView->setScene(new QGraphicsScene());

QMediaPlayer pl;
QGraphicsVideoItem vid;
pl.setVideoOutput(&vid);
qDebug() << pl.error();

vid.setSize( QSizeF(1920, 1080) );

pl.setMedia( QUrl::fromLocalFile( path ) );
qDebug() << pl.error();

ui->graphicsView->scene()->addItem(&vid);
ui->graphicsView->resize(1920, 1080);
pl.play();
qDebug() << pl.error();

什么都没画。没有错误。文件已存在。也许插件有些问题?或硬件加速,因为我在带有分立卡的笔记本电脑上。提前谢谢。

2 个答案:

答案 0 :(得分:0)

好的,我明白了。我的愚蠢错误。退出范围后,QMediaPlayer和QGraphicsVideoItem被删除。

答案 1 :(得分:0)

以防其他人进入此页面。您可能必须使用 QVideoWidget 而不是 QGraphicsVideoItem。

https://whynhow.info/30713/How-to-make-friends-QCamera-and-QGraphicsVideoItem

    // Note: QGraphicsVideoItem doesn't work but QVideoWidget does
    // https://whynhow.info/30713/How-to-make-friends-QCamera-and-QGraphicsVideoItem?
    auto *vidWidget = new QVideoWidget;
    mpScene->addWidget(vidWidget);

    mpCamera = new QCamera(acCamera, this);
    mpCamera->setViewfinder(vidWidget);
    mpCamera->setCaptureMode(QCamera::CaptureVideo);