高通camx CaptureSession
处理一个拍照的流程大致如下:
拍照过程
1.创建builder
接口:CaptureRequest.Builder Builder = CameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE)
描述:通过以上代码会根据传入createCaptureRequest的参数获取相应的builder
示例:
2.配置
接口:CaptureRequest.Builder.setTag(int)
CaptureRequest.Builder.addTarget(Surface)
CaptureRequest.Builder.set(Key<Integer> key, Integer value)
描述:通过以上代码可以配置请求的参数,例如Tag,Surface,zoom的值等一系列特征
示例:
3.停止先前的预览状态
接口:CameraCaptureSession.stopRepeating()
CameraCaptureSession.abortCaptures()
描述:通过以上代码可以停止先前的状态(例如预览状态),当然不会销毁CameraCaptureSession
4.执行拍照动作
接口:CameraCaptureSession.capture(CaptureRequest arg0, CaptureCallback arg1, Handler arg2)
描述:此时传入的CaptureRequest为拍照的CaptureRequest,由拍照的CaptureRequest.Builder对象调用builder()获得
示例:
5.处理图片数据
接口:captureBuilder.addTarget(imageReader.getSurface())
描述:通过以上代码会把ImagerReader.getSurface()获得的Surface通过CaptureRequest.Builder.addTarget(Surface)进行配置,这样就可以将内存中的数据通过ImageReader的操作放到文件中。
示例: