背景:自现代摄像头硬件发展以来,不同手机公司的厂商开始将多个摄像头传感器整合在一起。
自从现代摄像头硬件的发展,不同手机公司的厂商开始整合多个摄像头传感器。可能会有这样的场景:我们要接入一个特定的镜头进行图像处理。
面临的挑战。
我正在寻找一种方法来手动选择可用的相机镜头 与安卓系统的默认镜头 摄像意图 或 摄像机2 API。从官方文档来看,我们可以使用下面的代码来打开原生相机应用,并请求进行图像捕捉。
val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI)
startActivityForResult(takePictureIntent, CAMERA_REQUEST)
然而这限制了选项的数量 尤其是在相机镜头之间的自由选择。这里是默认相机视图与相机意图的预览。
但是如果我启动原生应用,就会有一些额外的选项,包括选择... 48MP 镜头。
有什么办法可以将 48MP 镜头以及相机意图中的其他设置?我们可以使用Camera2 API来手动访问相机镜头吗?
这里是默认相机视图的预览与相机意图
没有单一的 "默认相机视图"。
有超过26000种Android设备型号。在这些设备型号中,有数百个预装的相机应用,还有数百个用户可能安装的应用。你的 "相机意图 "可能会带来这几百个应用中的任何一个。
然而如果我启动原生应用
没有单一的 "原生应用"。
有没有办法将4800万像素镜头与其他设置一起纳入相机意图?
没有,抱歉。
我们可以使用Camera2 API来手动访问相机镜头吗?
也许可以,不过细节取决于设备型号。仅仅因为一个设备有额外的镜头,并不意味着制造商必须将这些镜头提供给第三方开发者。