# AndroidCamera **Repository Path**: xiaozhi003/android-camera ## Basic Information - **Project Name**: AndroidCamera - **Description**: Android Camera Operation Collection - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 1 - **Created**: 2024-09-03 - **Last Updated**: 2025-02-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AndroidCamera 本项目主要涉及Android开发中Camera的相关操作、预览方式、视频录制等。项目结构简单代码耦合性低,适合学习和使用

## lib-camera |包|说明 | |--|--| | camera | camera相关操作功能包,包括Camera和Camera2。以及各种预览视图 | | encoder | MediaCdoec录制视频相关,包括对ByteBuffer和Surface的录制 | | gles | opengles操作相关 | | permission | 权限相关 | | util | 工具类 | 每个包都可独立使用,耦合度低,方便白嫖:) ## 预览视图
类名 功能说明
CameraSurfaceView 1.SurfaceView+Camera
2.包含MediaCodec+Buffer录制视频
CameraTextureView TextureView+Camera
CameraGLSurfaceView 1.GLSurfaceView+Camera
2.MediaCodec+Surface录制视频,多线程共享EGL方式
CameraGLESSurfaceView 1.SurfaceView+OpenGL ES+Camera
2.MediaCodec+Surface录制视频,三种渲染方式:
  • Draw Twice
  • Draw FBO
  • Draw Blit framebuffer
CameraGLTextureView 1.TextureView+OpenGL ES+Camera
2.MediaCodec+Surface录制视频,三种渲染方式:
  • Draw Twice
  • Draw FBO
  • Draw Blit framebuffer
Camera2SurfaceView SurfaceView+Camera2
Camera2TextureView TextureView+Camera2
Camera2GLSurfaceView 1.GLSurfaceView+Camera2
2.MediaCodec+Surface录制视频,多线程共享EGL方式
Camera2GLESSurfaceView 1.SurfaceView+OpenGL ES+Camera2
2.MediaCodec+Surface录制视频,三种渲染方式:
  • Draw Twice
  • Draw FBO
  • Draw Blit framebuffer
Camera2GLTextureView 1.TextureView+OpenGL ES+Camera2
2.MediaCodec+Surface录制视频,三种渲染方式:
  • Draw Twice
  • Draw FBO
  • Draw Blit framebuffer
## FAQ ### 1.如何切换预览尺寸 `ICameraManager`提供了`setPreviewSize(Size size)`接口可以在openCamera之前设置想要的预览尺寸 ### 2.如何获取预览帧数据 `ICameraManager`提供了`addPreviewBufferCallback(PreviewBufferCallback previewBufferCallback)`接口可以在回调中获取Camera预览数据,格式为**NV21** > 注意:获取的byte[]是可复用的,需要您自行arrayCopy一份使用 ### 3.如何拍照 `ICameraManager`提供了`takePicture(PictureBufferCallback pictureCallback)`接口可以在回调中获取拍照数据,格式为**JPG** ## Blog [Android Camera系列(一):SurfaceView+Camera](https://blog.csdn.net/xiaozhiwz/article/details/141472537) [Android Camera系列(二):TextureView+Camera](https://blog.csdn.net/xiaozhiwz/article/details/141855031) [Android Camera系列(三):GLSurfaceView+Camera](https://blog.csdn.net/xiaozhiwz/article/details/141860162) [Android Camera系列(四):TextureView+OpenGL ES+Camera](https://blog.csdn.net/xiaozhiwz/article/details/142781497) [Android Camera系列(五):Camera2](https://blog.csdn.net/xiaozhiwz/article/details/142555345) 参考: 1. [https://github.com/afei-cn/CameraDemo](https://github.com/afei-cn/CameraDemo) 2. [https://github.com/saki4510t/UVCCamera](https://github.com/saki4510t/UVCCamera) 3. [https://github.com/google/grafika](https://github.com/google/grafika)