java - 带摄像头的光传感器仿真
问题描述
我已经用 camera2 API 对相机进行了编程,但是当我执行 onCaptureCompleted 或 onCaptureProgressed 方法时,除了 LENS_FOCAl_LENGTH 之外的值都为 null。
@Override
public void onCaptureCompleted(@NonNull CameraCaptureSession session, @NonNull CaptureRequest request, @NonNull TotalCaptureResult result) {
super.onCaptureCompleted(session, request, result);
String aperture = String.valueOf(result.get(CaptureResult.LENS_APERTURE));
String focal_length = String.valueOf(result.get(CaptureResult.LENS_FOCAL_LENGTH));
String focus_distance = String.valueOf(result.get(CaptureResult.LENS_FOCUS_DISTANCE));
String exposure_time = String.valueOf(result.get(CaptureResult.SENSOR_EXPOSURE_TIME));
String frame_duration = String.valueOf(result.get(CaptureResult.SENSOR_EXPOSURE_TIME));
String sensitivity = String.valueOf(result.get(CaptureResult.SENSOR_SENSITIVITY));
}
解决方案
您需要在其他设备上进行测试。根据文档(https://developer.android.com/reference/android/hardware/camera2/CaptureResult),几乎所有值“可选 - 此键的值在某些设备上可能为空。”
但是例如,在您的情况下不为空的 LENS_FOCAL_LENGTH 是“此密钥在所有设备上都可用”。所以所有值都取决于设备类型。
推荐阅读
- c# - 数据库远程事件和异步编程
- android - 使用 cordova 更改设备时间
- json - 使用 jq 返回 JSON 对象中的特定信息
- c - 如何使用我想要的 scanf 获取字符串?
- azure - 你可以在 AzureVM 上更改硬盘的 VolumeID(和其他设备的 GUID)吗?
- android - Base64 编码和解码适用于 Android,但不适用于在线转换器
- sql - 使用函数时从字符串转换日期和/或时间时转换失败
- nginx - 带有查询字符串的 Nginx 重定向映射
- python - 大型 JSON 文件:在 dict 值中搜索字符串
- javascript - 更新 ngx-translate 加载器中的翻译