简体   繁体   English

QGraphicsView 中的 QGraphicsVideoItem

[英]QGraphicsVideoItem in QGraphicsView

I am trying to draw video inside QGraphicsView in QT5.5.我正在尝试在 QT5.5 中的 QGraphicsView 中绘制视频。 Here's the code这是代码

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();

Nothing is drawn.什么都没画。 No errors.没有错误。 File exists.文件已存在。 Maybe some issue with plugins?也许插件有问题? Or hardware acceleration, cause I am on notebook with discrete card.或硬件加速,因为我使用的是带有独立卡的笔记本电脑。 Thank you in advance.先感谢您。

Ok, I got it.好,我知道了。 My stupid mistake.我愚蠢的错误。 QMediaPlayer and QGraphicsVideoItem was deleted after exiting scope. QMediaPlayer 和 QGraphicsVideoItem 在退出范围后被删除。

In case someone else runs into this page.以防其他人进入此页面。 You may have to use a QVideoWidget instead of a QGraphicsVideoItem.您可能必须使用 QVideoWidget 而不是 QGraphicsVideoItem。

https://whynhow.info/30713/How-to-make-friends-QCamera-and-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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM