您的位置:首页 > 移动开发 > Android开发

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

2017-12-26 19:17 471 查看

简述

在移动流媒体行业入坑三年出头了,虽然服务端和移动端都有做过,感觉更擅长的还是移动端,能在这个行业走这么长时间,还要多谢各位大神的博客。

我要向各位大神学习,也慢慢的开始写博客,整理整理零散的技术。

如有错误之处,请多多指教

几种方法介绍

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上就可以了

核心代码

广告之后会贴出和上传代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息