Sample之Camera2BasicFragment

本文介绍Android Camera2 API的基本使用,包括TextureView配置、相机开启、ImageReader处理帧数据、Semaphore同步控制以及MediaRecorder进行视频录制。通过示例项目Camera2BasicFragment,详细解析了预览、拍照和录像的实现流程。
摘要由CSDN通过智能技术生成

Sample学习,本篇是Camera2使用学习

Google project https://developer.android.com/samples/Camera2Basic/project.html

就一个文件Camera2BasicFragment

camera2使用:(横屏布局 res/layout-land)
1.画布使用的是 TextureView,启动了一个后台进程
//An additional thread for running tasks that shouldn't block the UI.
private HandlerThread mBackgroundThread;
// A {@link Handler} for running tasks in the background.
private Handler mBackgroundHandler;
给TextureView设置监听 TextureView.SurfaceTextureListener()
2. onSurfaceTextureAvailable 回调时打开相机
相机是使用 Manager 打开
CameraManager manager = (CameraManager) getActivity().getSystemService(Context.CAMERA_SERVICE);
manager.getCameraIdList() 返回当前可用相机数量,寻找可以打开的相机,依靠 mCameraId
接着一个很重要的对象 ImageReader ,目测拍照获取的数据都在里面
ImageReader newInstance(int width, int height, int format, int maxImages)
设置setOnImageAvailableListener,回调时 帧数据就在里面
然后 manager.openCamera(@NonNull String cam

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值