Camera.Parameters 类确实在 API 级别 21 中被弃用了,不再推荐使用它来设置相机参数,例如曝光时间和 ISO。相反,您可以使用 Android Camera2 API 来设置这些参数。
要使用 Camera2 API 设置曝光时间和 ISO,您可以使用 CaptureRequest.Builder 类创建指定所需相机设置的 CaptureRequest 对象。然后,您可以使用 set(CaptureRequest.SENSOR_EXPOSURE_TIME, value) 和 set(CaptureRequest.SENSOR_SENSITIVITY, value) 方法分别设置曝光时间和 ISO。这些参数的值分别以纳秒和 ISO 单位指定。
以下是如何使用 Camera2 API 设置曝光时间和 ISO 的示例:
CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
String cameraId = manager.getCameraIdList()[0]; // use the first camera
CameraDevice camera = manager.openCamera(cameraId, callback, null);
// create a CaptureRequest.Builder
CaptureRequest.Builder requestBuilder = camera.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
// set the exposure time and ISO
requestBuilder.set(CaptureRequest.SENSOR_EXPOSURE_TIME, exposureTime);
requestBuilder.set(CaptureRequest.SENSOR_SENSITIVITY, iso);
// create a CaptureRequest and submit it to the camera
CaptureRequest request = requestBuilder.build();
camera.capture(request, callback, null);
请记住,并非所有设备都支持设置曝光时间和 ISO,并且支持的值范围可能会有所不同。您可以使用 get(CaptureRequest.SENSOR_INFO_EXPOSURE_TIME_RANGE) 和 get(CaptureRequest.SENSOR_INFO_SENSITIVITY_RANGE) 方法获取这些参数支持的值范围。
还值得注意的是,设置曝光时间和 ISO 不一定总能显着提高条形码扫描速度。扫描仪的性能还可能取决于其他因素,例如相机的质量、照明条件和条形码的复杂性。
我希望这个信息帮助!如果您有任何其他问题或需要更多指导,请随时提出。