0

我正在运行一个 qt 嵌入式应用程序和 mplayer,它们都在帧缓冲区上。

当我开始通过 mplayer 播放视频时,我会在电影周围看到很多闪烁。

请看以下电影:

http://youtu.be/kbKpfjLHzTY

如何解决?

4

1 回答 1

1

对于带有QWS的Qt 4 ,用于直接写入帧缓冲区的嵌入式 linux 图形子系统,您可以在调用之前在-qws服务器的 GUI 线程中运行以下 命令,mplayer

QWSServer *server = QWSServer::instance(); 
if(server) 
   server->enablePainting(false); // Suspend Qt's drawing. 

您可以使用SIGCHLD或其他东西来确定何时mplayer完成并重新绘制。另一种方法是定位mplayer's输出窗口并使用QWSEmbedWidget告诉Qt不要在那里绘制。

QWS和打开帧缓冲区并直接绘制到它。没有任何东西可以编组对显示设备的访问。QWS子系统允许多个Qt应用程序同时绘制到屏幕上。但是,它无法控制访问帧缓冲区的其他进程。因此,可以使用X11或其他显示管理器,如Wayland等。这通常是Qt5中使用的方法。mplayer

于 2013-06-26T17:37:46.933 回答