再次尝试在QGraphicsView中显示视频。现在我在第二次应用程序启动后出现断言失败:
ASSERT: "m_surface" in file player\mfvideorenderercontrol.cpp, line 2346
这是我的代码:
pl = new QMediaPlayer();
vid = new QGraphicsVideoItem();
pl->setVideoOutput(vid);
qDebug() << pl->error();
vid->setSize( QSizeF(1920, 1080) );
vid->setPos(QPointF(-500,-500));
pl->setMedia( QUrl::fromLocalFile( path ) );
qDebug() << pl->error();
ui->graphicsView->scene()->addItem(vid);
ui->graphicsView->setFixedSize(1920, 1080);
qDebug() << pl->error();
pl->play();
我测试了* .avi和* .mp4文件。同样的问题。以下是步骤:
如果我在断言窗口按Skip
,一切都会好起来的。
提前谢谢。
答案 0 :(得分:0)
得到解决方案。当调用set media时,有一个机会并不是玩家在那个时刻初始化所需的一切。解决方案是添加类似QTimer::singleShot( 1000, this, SLOT( initAndPlayVideo() ) );
的内容,或者将此插槽放在某个按钮上。