经过测试的操作系统版本。 &安培;设备:Android 5.0.2 / 6.0.1两个设备都是Galaxy Tab S2
当我尝试通过Camera2 API访问摄像头以获得支持的设备的fps范围时,我从get得到一个奇怪的结果(CameraCharacteristics.CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES)。
如果我在Android 5.0.2上尝试此操作,我会获得如下所示的fps范围, [[15000,15000],[24000,24000],[15000,30000],[30000,30000]]。
但是,如果我在同一设备上尝试此代码但操作系统版本不同(6.0.1),我会得到不同的结果,如下所示。 [[15,15],[24,24],[15,30],[30,30]]
为什么这些结果有所不同?我认为这是由不同的操作系统版本引起的。
为了更好地理解,我在这里编写了一些代码为this的代码。
CameraManager manager = (CameraManager)activity.getSystemService(Context.CAMERA_SERVICE);
...
String cameraId = manager.getCameraIdList()[0];
CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId);
Range<Integer>[] fpsRanges = characteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES);
答案 0 :(得分:3)
不幸的是,早期Android版本中存在一个错误,其中某些设备上可用FPS范围的值不正确;正如您在6.0.1上看到的那样,这在以后的版本中已得到修复。
这些值应该只是每秒帧数;他们无意中1000 *帧速率。
这确实意味着您必须小心地在较旧的OS版本上解释此值,尤其是在LEGACY设备上。