如何解决无论如何,是否需要检查相机设备是否可供应用程序在Android上使用?
这个问题适用于Android手机,但是将来我可能会在iOS和UWP上遇到同样的问题。因此,可以解决我有关其他平台的问题,但不是必须的。
我正在使用camera2软件包尝试开发适用于Android手机的相机应用程序,并使用Kotlin。我要尝试做的一件事情是让该应用找到当前可用的摄像头设备,以便可以对其进行初始化并开始做摄像头工作。
我看到函数getCameraIdList
将返回当前连接到该设备的一系列摄像头设备。但是,该数组将包括其他应用程序或API客户端当前正在使用的数组。那些使用的摄像头设备在原始客户端发布之前,不能由其他应用程序使用。我在想,也许我可以使用循环遍历该函数返回的字符串数组(从手机背面的摄像头设备开始),直到应用程序找到可用的字符串为止。但是我找不到办法。
我看到有一个名为AvailabilityCallback
的类,可以通知某个相机设备是否可用。尽管似乎以前如果相机设备不可用,将使用此回调。我也不知道这是否是正确的方法。
StateCallback
的参数openCamera
包含一种方法,用于在发生错误时计算机应如何处理;在这种情况下为ERROR_CAMERA_IN_USE
。下面的代码将是这样的:
callback: StateCallback() {
onClosed(camera: CameraDevice){
//do stuff
}
onDisconnected(camera: CameraDevice){
//do stuff
}
onError(camera: CameraDevice){
//Try a different camera device when ERROR_CAMERA_IN_USE occurs
}
onOpened(camera: CameraDevice){
//do stuff
}
}
fun openCamera(cameraId: String,callback,handler: Handler?){
}
我也不知道这是否是正确的方法。
我还考虑过如果第一个摄像头不可用,应用程序会多次使用openCamera
,但我想这样做会很昂贵。
我想做的就是知道如何使用camera2查找和使用可用的相机设备。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。