gpt4 book ai didi

Qt 应用程序断言在第二次启动时失败

转载 作者:行者123 更新时间:2023-12-05 07:53:08 34 4
gpt4 key购买 nike

再次尝试在 QGraphicsView 中显示视频。现在我在第二次应用程序启动后断言失败:

ASSERT:文件 player\mfvideorenderercontrol.cpp 中的“m_surface”,第 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 文件进行了测试。同样的问题。以下是步骤:

  • 我正在将 avi 文件放在路径中。
  • 构建/启动应用程序。
  • 一切都很好。视频作品。
  • 关闭应用程序,再启动一次。
  • 断言失败。
  • 将路径中的文件更改为 mp4。
  • 构建/启动应用程序。
  • 一切都好起来了。
  • 等等。

如果我在断言窗口中按下 Skip,一切都会再次正常。

提前谢谢你。

最佳答案

找到解决方案。当调用 set media 时,有可能不是播放器需要的所有东西都在那个时候被初始化。解决方案是添加诸如 QTimer::singleShot( 1000, this, SLOT( initAndPlayVideo() ) ); 之类的内容,或者将此插槽放在某些按钮点击上。

关于Qt 应用程序断言在第二次启动时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33049004/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com