我正在尝试使用以下代码从 Camera2 API 获取支持的每秒帧数值。
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);
开发者网站称 CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
用于获取相机设备支持的 CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
帧速率范围列表。
这些是 Pixel2 移动设备的 fpsRange(上限和下限)数组的值。
[15, 15], [24, 24], [7, 30], [30, 30], [7, 60], [60, 60]
这是否意味着上述设备支持从 7 到 60 的帧速率,即 7、15、24、30 和 60?我对这些值有点困惑。
最佳答案
请看一下这个方法,我从 stackoverflow 得到这个
private Range<Integer> getRange() {
CameraCharacteristics chars = null;
CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
try {
chars = manager.getCameraCharacteristics(mCameraId);
Range<Integer>[] ranges = chars.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES);
Range<Integer> result = null;
for (Range<Integer> range : ranges) {
int upper = range.getUpper();
int lower = range.getLower();
// 10 - min range upper for my needs
Log.e("Upper fps :",""+upper);
Log.e("range fps :",""+range);
if (upper >= 10000) {
if (result == null || upper < result.getUpper().intValue()) {
Range<Integer> newsrange = new Range<>(range.getLower()/1000,range.getLower()/1000);
result = newsrange;
Log.e("result fps :",""+range);
}
}
if (upper >= 10) {
if (result == null || upper < result.getUpper().intValue()) {
result = range;
Log.e("result fps :",""+range);
}
}
}
if (result == null) {
result = ranges[0];
Log.e("result in range[0] is :",""+result);
}
return result;
} catch (CameraAccessException e) {
e.printStackTrace();
return null;
}
}
如何使用??? 1. 在 mCameraDevice.createCaptureSession 的 createCameraPreviewSession() 中:
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE,getRange());
在方法 CaptureStiilPicture() 中 -> 在捕获生成器之后设置 brignes
captureBuilder.set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE,(getRange()));
关于android - Camera2 API 支持的 FPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55180509/