Android的相机 Camera2 在 6.0M 的时候,出了一个支持高帧率预览和录像的功能。 就是创建一个新的 session,叫做 mCameraDevice.createConstrainedHighSpeedCaptureSession,通过这个,可以实现相机的高帧率(>120fps)的预览和录像(需要相机本身支持)。 根据相机的不同,实现的帧率也不同...
总得来讲,就是 Camera APP 通过 CameraManager 获取 CameraDevice,使用 CameraDevice 创建 CameraCaptureSession,CameraCaptureSession 发送 CaptureRequest, CameraDevices 收到请求后返回对应数据到对应的 Surface 中,Camera2 中预览/拍照/录像数据统一由 Surface 来接收,预览数据一般都是 SurfaceView, 拍照数据则在 ImageR...
CameraManager val cameraIdList = cameraManager?.cameraIdList if (cameraManager == null || cameraIdList == null || cameraIdList.isEmpty()) { Toast.makeText(this, "无法使用设备相机", Toast.LENGTH_SHORT).show() finish() return } for (id in cameraIdList) { var cameraCharacteristics: Cam...
1)从Android 6.0开始,Camera相关的,添加了一个新的类CameraConstrainedHighSpeedCaptureSession,从描述上看,我们就可以知道,这个是专门为高速、高帧率录像准备的。换一句话说,也就是Android 6.0以上,Android本身才支持这个高速、高帧率录像。 2)通过CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS来获取available size。...
CameraManager --- 获取连接的camera情况,执行打开摄像头的操作; CameraDevice --- 当前连接的摄像头对象; CaptureRequest --- camera数据的请求,比如预览、拍照、录像等 ; CaptureSession --- 发送请求后,就建立了一个会话,可以在当前建立的会话上切换各种请求,不需要的时候可以执行关闭; 二、代码实现 下面代码是...
camera2的结构如下,主要是通过相机管理器(CameraManager)获得相机设备(CameraDevice),然后再开启一个控制相机的会话,最后发送 拍照、预览、录像等请求。 0 准备 1 新建工程,在一个Activity上 设置一个TextureView 用于 预览图片; 设置一个ImageView 用于 显示拍照结果; ...
Camera2 的API,拍照时通过ImageReader返回jpeg数据给上层,交由上层进行保存; 如下面代码所示: 1、首先需要初始化一个JPEG类型的ImageReader,用来接收底层数据回调; 2、设置CameraDevice.TEMPLATE_STILL_CAPTURE 类型的请求,请求拍照;请求成功后,我们需要恢复正常的预览类型请求; ...
Camera2 的API,拍照时通过ImageReader返回jpeg数据给上层,交由上层进行保存; 如下面代码所示: 1、首先需要初始化一个JPEG类型的ImageReader,用来接收底层数据回调; 2、设置CameraDevice.TEMPLATE_STILL_CAPTURE 类型的请求,请求拍照;请求成功后,我们需要恢复正常的预览类型请求; ...
Android的相机Camera2在6.0M的时候,出了一个支持高帧率预览和录像的功能,就是创建一个新的session,叫做mCameraDevice.createConstrainedHighSpeedCaptureSession,通过这个,可以实现相机的高帧率(>120fps)的预览和录像(需要相机本身支持). 根据相机的不同,实现的帧率也不同, 比如我手上这个华为v10的手机就是下图这个样...
Camera2拍照流程图: Camera2中比较重要的类及方法 1 .CameraManager 摄像头管理器,用于打开和关闭系统摄像头 getCameraIdList() : 返回当前设备中可用的相机列表 getCameraCharacteristics(String cameraId) : 根据摄像头id返回该摄像头的相关信息 openCamera(String cameraId, final CameraDevice.StateCallback callbac...