[英]Qt application assertion fails on second launch
再次嘗試在 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
,一切都會再次正常。
先感謝您。
得到解決方案。 當調用 set media 時,有可能不是玩家所需的一切都在那個時候初始化。 解決方案是添加類似QTimer::singleShot( 1000, this, SLOT( initAndPlayVideo() ) );
或將此插槽放在某些按鈕上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.