这是QT5。它在嵌入式Yocto系统上,QT绘制到帧缓冲区,没有X11。问题是这个。我想用gstreamer播放视频。因此,我试图在QT中使用与触摸事件相关联的gst-launch-1.0启动gstreamer。问题是,它随着QT也尝试渲染帧而闪烁。
接下来,我们尝试了Q媒体播放器。但是,这个专有的gstreamer并不支持playbin,因此,我进入了QGstreamerPlayerSession并修改了构造函数,使用gst_parse_launch来设置我的管道而不是playbin。
这是有效的,因为我的视频播放。但是,仍然有同样的闪烁!我试图在启动视频之前抛出一个白色矩形,但它仍然闪烁着。
我怎样才能阻止QT重绘?播放视频前是否需要空场景?或者是否有一个暂停重绘的函数调用?
我当然可以向QT发送SIGSTOP,在外部应用程序中播放视频,然后使用SIGCONT恢复。这是有效的,但显然是一个非常不优雅和限制性的解决方案(我需要应用程序在后台处理仍然作为其控制其他东西)。