我有Android的Qt实时广播聊天应用程序(v 4.1,API 16),它将H.264 / AAC块发送到RTMP服务器。
目前,应用程序使用SurfaceView
来捕获来自Camera
和onPreviewFrame
函数的帧,我将帧编码为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
做一些技巧?
谢谢!