CameraManager只提供了2个相机ID,但一个设备有三个物理相机。为什么?

4

我有三星Galaxy S9手机,看到设备上有两个后置物理相机。然而,cameraManager.cameraIdList只给出了两个相机ID,一个面向相机,另一个是后置相机。如何解决第三个相机?是否可能存在第三个相机?


1
从硬件角度来看,你可能会看到第三个镜头,但三星将两个后置镜头的结果合并成一张图片。 - CommonsWare
@CommonsWare 可以使用 setPhysicalCameraId(cameraId) 在逻辑相机的物理相机之间进行切换。https://dev59.com/qLPma4cB1Zd3GeqPspPM#66569731 - user924
1个回答

0

1
是的,我差不多一年前就找到了这个解决方案。然而,对于一个目标设备(我不记得具体是哪款设备,因为那已经有一段时间了),CameraCharacteristics#getPhysicalCameraIds(而不是 CameraManager)仅从单个逻辑后置摄像头返回了两个物理后置摄像头中的两个。我认为这是由 Android 操作系统提供程序提供的实现细节。尽管如此,这个答案是最接近解决方案的,所以我会将其标记为已接受。 - nyarian
@AndreyIlyunin 这取决于操作系统,据我所知。一些设备,如Google Pixel 3,有两个前置摄像头,您可以访问它们两个。 - Simon Pham
三星S20 api 30。该设备有3个后置摄像头,报告了两个后置逻辑摄像头,并且两者都没有物理ID。看起来这个多摄像头的功能得到了很好的支持。 - SerialSensor
1
@SerialSensor 三星将所有相机都公开为逻辑相机,这不是多相机API的事情。尽管三星让开发人员更容易了解这一点,但对于Pixel 4、5来说,情况就比较困难了,因为它只返回两个逻辑相机,您必须使用新的多相机API来配置物理相机。https://dev59.com/qLPma4cB1Zd3GeqPspPM#66569731 - user924
@user924 喜欢文字所述,有3个朝后的摄像头,但只有两个逻辑摄像头。因此,所有暴露出来的内容绝对不是真的。这就是为什么我检查了物理ID。 - SerialSensor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接