android摄像头采集和预览-小结介绍

简述

在移动流媒体行业入坑三年出头了,虽然服务端和移动端都有做过,感觉更擅长的还是移动端,能在这个行业走这么长时间,还要多谢各位大神的博客。
我要向各位大神学习,也慢慢的开始写博客,整理整理零散的技术。
如有错误之处,请多多指教

几种方法介绍

1. SurfaceView + setPreviewDisplay + setPreviewCallbackWithBuffer

这种之前用的比较多的方式,也是我认为比较原始的方式
使用 setPreviewDisplay 将图像渲染到 SurfaceView 上,然后setPreviewCallbackWithBuffer获取图像数据

2. GLSurfaceView + setPreviewTexture + opengl-es

这种方式现在比较常用了
在GLSurfaceView的onSurfaceCreated函数中创建SurfaceTexture,然后摄像头通过setPreviewTexture将图像渲染到SurfaceTexture,有图像更新时会触发onFrameAvailable回调,将图像填充到与SurfaceTexture关联的纹理id上,
使用opengl-es将纹理渲染到屏幕上完成预览。

3. SurfaceView + setPreviewTexture + opengl-es + egl

与第2中方法差不多,区别是使用SurfaceView而没有使用GLSurfaceView
有了纹理id,只需要通过egl的方式将纹理渲染到SurfaceView上就可以了

猜你喜欢

转载自blog.csdn.net/qq_26280383/article/details/113942414