正在检查 Android 设备摄像头视频至少支持 30fps
Checking Android device camera video supports at least 30fps
我需要一个函数来判断 phone 的摄像头视频是否至少支持 30fps。
我同时使用 camera1 和 camera2 api,具体取决于 phone 的 camera2 支持(或不支持)
我考虑过使用这个 :
val manager = context.getSystemService(Context.CAMERA_SERVICE) as CameraManager
val cameras = manager.cameraIdList
for (camera in cameras) {
val cc = manager.getCameraCharacteristics(camera)
val fpsRange = cc.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES)!!
--> Log.d("TAG", "fps : ${fpsRange.find { it.lower == 30 && it.upper == 30 }}") // is this correct?
}
但我不确定这是否是正确的解决方案,我不了解我得到的范围以及我是否选择了正确的 CameraCharacteristics。
对于固定的 30fps 帧速率(最小帧速率 = 最大帧速率 = 30),该表达式的计算结果为真。这将在所有 Android 设备上得到普遍支持,因为它是标准视频录制所必需的。
我需要一个函数来判断 phone 的摄像头视频是否至少支持 30fps。 我同时使用 camera1 和 camera2 api,具体取决于 phone 的 camera2 支持(或不支持)
我考虑过使用这个 :
val manager = context.getSystemService(Context.CAMERA_SERVICE) as CameraManager
val cameras = manager.cameraIdList
for (camera in cameras) {
val cc = manager.getCameraCharacteristics(camera)
val fpsRange = cc.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES)!!
--> Log.d("TAG", "fps : ${fpsRange.find { it.lower == 30 && it.upper == 30 }}") // is this correct?
}
但我不确定这是否是正确的解决方案,我不了解我得到的范围以及我是否选择了正确的 CameraCharacteristics。
对于固定的 30fps 帧速率(最小帧速率 = 最大帧速率 = 30),该表达式的计算结果为真。这将在所有 Android 设备上得到普遍支持,因为它是标准视频录制所必需的。