1

这是QT5。它在嵌入式 Yocto 系统上,QT 绘制到帧缓冲区,没有 X11。问题是这样的。我想使用 gstreamer 播放视频。因此,我尝试使用链接到 QT 中的触摸事件的 gst-launch-1.0 启动 gstreamer。问题是,它闪烁,因为 QT 也尝试渲染帧。

接下来,我们尝试了Q媒体播放器。但是,这个专有的 gstreamer 不支持 playbin,所以,我进入 QGstreamerPlayerSession 并修改了构造函数以使用 gst_parse_launch 来设置我的管道而不是 playbin。

这有效,因为我的视频播放。但是,还是有同样的闪烁!我试图在启动视频之前抛出一个白色矩形,但它仍然闪烁。

如何防止 QT 重绘?在播放视频之前我需要一个空场景吗?还是有一个函数调用来暂停重绘?

我当然可以向 QT 发送 SIGSTOP,在外部应用程序中播放视频,然后使用 SIGCONT 继续。这行得通,但显然是一个非常不雅和限制性的解决方案(我需要应用程序在后台处理仍然作为它控制其他事情)。

4

0 回答 0