Android P CameraDevice.StateCallback

CameraDevice.StateCallback

用于接收有关摄像机设备状态的更新的回调对象。

在调用CameraManager#openCamera方法时,必须提供此回调实例才能打开摄像机设备。

这些状态更新包括有关设备完成启动(允许调用CameraDevice.createCaptureSession(SessionConfiguration)),设备断开或关闭以及有关意外设备错误的通知。

有关特定CaptureRequest进度的事件是通过CameraCaptureSession.CaptureCallback提供给CameraCaptureSession#capture,CameraCaptureSession#captureBurst,CameraCaptureSession #setRepeatingRequest或CameraCaptureSession #setRepeatingBurst方法。

 

常量

  • ERROR_CAMERA_DEVICE

public static final int ERROR_CAMERA_DEVICE

onError(CameraDevice,int)可以报告的错误代码,表示摄像头设备遇到了致命错误。

需要重新打开相机设备才能再次使用。

  • ERROR_CAMERA_DISABLED

public static final int ERROR_CAMERA_DISABLED.

onError(CameraDevice,int)可以报告的错误代码,表示由于设备策略而无法打开摄像头设备。

  • ERROR_CAMERA_IN_USE

public static final int ERROR_CAMERA_IN_USE

onError(CameraDevice,int)可以报告的错误代码,表示相机设备已在使用中。

由于相机被更高优先级的相机API客户端使用,打开相机失败时可能会产生此错误。

  • ERROR_CAMERA_SERVICE

public static final int ERROR_CAMERA_SERVICE

onError(CameraDevice,int)可以报告的错误代码,指示摄像头服务遇到致命错误。

Android设备可能需要关闭并重新启动才能恢复相机功能,否则可能会出现持续的硬件问题。

通过关闭CameraDevice和CameraManager并尝试从头开始再次获取所有资源,可以尝试恢复。

  • ERROR_MAX_CAMERAS_IN_USE

public static final int ERROR_MAX_CAMERAS_IN_USE

onError(CameraDevice,int)可以报告的错误代码,表示由于有太多其他打开的摄像头设备而无法打开摄像头设备。

已达到系统范围的开放式摄像机数量限制,并且在关闭之前的实例之前无法打开更多的摄像机设备。

打开相机失败时可能会产生此错误。

 

公共方法

  • onClosed
public void onClosed (CameraDevice camera)

使用CameraDevice#close方法关闭相机设备时调用的方法。

这此方法被调用之后,在此CameraDevice上调用方法的任何尝试都将抛出IllegalStateException。

此方法的默认实现不执行任何操作。

  • onDisconnected
public abstract void onDisconnected (CameraDevice camera)

当相机设备不再可用时调用的方法。

如果打开相机失败,可能会调用此回调而不是onOpened(CameraDevice)。

此方法被调用后,任何在此CameraDevice上调用方法的尝试都将抛出CameraAccessException。 断开连接可能是由于安全策略或权限的变化; 可移动摄像设备的物理断开; 或者更高优先级的相机API客户端需要相机。

调用此方法后仍可能会调用捕获回调,或者传递给活动输出的新图像缓冲。

默认实现会向系统日志记录有关断开连接的通知。

在发生这种情况后,您应该使用CameraDevice#关闭相机,因为在相机再次打开之前无法恢复。 对于大多数用例,这将是摄像机再次成为CameraManager.AvailabilityCallback#onCameraAvailable。

  • onError
public abstract void onError (CameraDevice camera, int error)

相机设备遇到严重错误时调用的方法。

如果打开相机失败,可能会调用此回调而不是onOpened(CameraDevice)。

这表示相机设备或相机服务以某种方式发生故障。 将来在此CameraDevice上调用方法的任何尝试都会抛出CameraAccessException和CameraAccessException#CAMERA_ERROR原因。

收到此错误后,可能仍会有捕获完成或摄像机流回调。

在发生这种情况后,你应该用CameraDevice#close关闭相机。 进一步的恢复尝试需要根据特定错误代码来定。

  • onOpened
public abstract void onOpened (CameraDevice camera)

摄像机设备完成打开时调用的方法。

此时,摄像机设备已准备就绪,可以调用CameraDevice #createCaptureSession来设置第一个捕获会话。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值