第二个参数是CameraCaptureSession的状态回调接口,当它创建好后会回调onConfigured方法,第三个参数用来确定Callback在哪个线程执行,为null的话就在当前线程执行mCameraDevice.createCaptureSession(Arrays.asList(mPreviewSurface, mImageReader.getSurface()),newCameraCaptureSession.StateCallback() {...
第二个参数是CameraCaptureSession的状态回调接口,当它创建好后会回调onConfigured方法,第三个参数用来确定Callback在哪个线程执行,为null的话就在当前线程执行mCameraDevice.createCaptureSession(Arrays.asList(mPreviewSurface, mImageReader.getSurface()),newCameraCaptureSession.StateCallback() {...
打开成功后,使用 CameraDevice.createCaptureSession 创建CameraCaptureSession 创建成功后,使用CameraCaptureSession.setRepeatingRequest 发起预览请求,它需要传入CaptureRequest,通过CameraDevice.captureRequest创建,CaptureRequest可以设置一些参数,对焦、曝光、闪光灯等等 第2步 createCaptureSession 时需要传入Surface列表。 这里传入...
创建CameraCaptureSession:在相机设备打开后,我们需要创建一个CameraCaptureSession实例。这可以通过调用CameraDevice的createCaptureSession方法实现。在创建CameraCaptureSession时,我们需要提供一个CameraCaptureSession.StateCallback实例和一个SurfaceTexture实例(用于预览)。 配置捕获请求:在CameraCaptureSession创建成功后,我们可以...
Camera2主要类 CameraManager: 相机管理类,用于打开,关闭摄像头和获取相机属性描述信息,通过 getSystemService(Context.CAMERA_SERVICE)获取实例; CameraDevice:具体的相机实例,用于建立会话; CameraCaptureSession:用于向相机发送获取图像的请求 CameraMetaData:相机属性描述的基类; ...
1.创建相机拍摄会话(camera capture session),和一组输出图层(Surface)。方法为 createCaptureSession(List, CameraCaptureSession.StateCallback, Handler) 。 2.每个图层都需要合适的大小和格式(appropriate size and format),利用这些参数来对相机传回的图片进行处理,一个目标图层类并不单一,可以是SurfaceView,Surface...
Android的相机 Camera2 在 6.0M 的时候,出了一个支持高帧率预览和录像的功能。 就是创建一个新的 session,叫做 mCameraDevice.createConstrainedHighSpeedCaptureSession,通过这个,可以实现相机的高帧率(>120fps)的预览和录像(需要相机本身支持)。
void addTarget(Surface outputTarget)添加一个请求的输出surface,注意这个surface必须包含在 CameraDevice.createCaptureSession() 方法设置的输出surface集合中 CaptureRequest build()使用当前配置构建一个CaptureRequest对象 T get(Key key)获取指定key的值 void removeTarget(Surface outputTarget)移除指定的输出surface ...
接下来就要通过 CaptureRequest.Builder以及 CameraCaptureSession.StateCallback 来创建及更新预览界面: ...Surfacesurface=newSurface(texture); mBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);// 设置预览对象mBuilder.addTarget(surface); ...
mCameraCaptureSession.setRepeatingRequest(builder.build(), null, null); CaptureRequest则由CameraDevice.createCaptureRequest()创建的builder,绑定目标surface后再builder()出来。 最后把代码发一下,很简单,没任何相关设置,出来的画面很原始。 public class MainActivity extends Activity { ...