SurfaceTexture、SurfaceView、GLSurfaceView、TextureView区别
SurfaceTexture不能直接显示,可以简单理解成“生产纹理的中间工具”,一般需要配合其他view或者功能模块发挥作用。
一个window中所有的view最后会合成一个图像绘制到屏幕上,但SurfaceView除外,SurfaceView有自己的独立窗口,所以SurfaceView性能较好,但是功能上不如TextureView操作方便,不支持旋转,平移等操作。
SurfaceView TextureView对比:
SurfaceTexture工作原理
相机采集的图像经SurfaceTexture处理后,输送到OpenGLES,gl处理完再输送到SurfaceView展示,最后由SurfaceFlinger合成;或经OpenGLES处理后,输送到MediaCodec编码,编码成视频。