快速获取SurfaceTexture像素或使用TextArea获取技巧

时间:2016-11-05 20:31:15

标签: android c++ qt qml qtquickcontrols

我有Android的Qt实时广播聊天应用程序(v 4.1,API 16),它将H.264 / AAC块发送到RTMP服务器。

目前,应用程序使用SurfaceView来捕获来自CameraonPreviewFrame函数的帧,我将帧编码为H.264块,而在其他Thread中我创建RTMP块,就像我上面写的那样发送到RTMP服务器。

背景是透明的(带有Qt::WindowStaysOnTopHint标志),QML用户界面高于Camera' s SurfaceView - 效果很好,没有滞后等。但是,当我尝试使用QML' TextArea(用于编写聊天消息)时,SurfaceView以上,某些设备上存在很长时间的延迟(而不是三星' s)当我按下Android的虚拟键盘上的任何键时,这个应用程序绝对无法使用。例如,我输入" LAG"在键盘上,显示TextArea)中的每个符号之间有3-4秒的延迟)):SurfaceView和播放没有滞后。

那么,亲爱的开发人员,我将采取什么措施来解决这个问题?

目前,我已将Camera的预览移至SurfaceTexture并使用Qt' QSGGeometryNode绘制,但还有另一个问题:如何读取像素来自SurfaceTexture更有效率?是否可以使性能更快或类似于onPreviewFrame?可能是我朝着错误的方向前进,我可以用TextArea做一些技巧?

谢谢!

0 个答案:

没有答案