使用 camera2 检查可用的前置闪光灯 API
Check front flash available using camera2 API
我正在三星 J7 Pro 上测试我的相机应用程序,它有 前置闪光灯(真正的硬件 LED 闪光灯)。当我检查 front flash 可用于已弃用的 Camera API 使用:
List<String> supportFlashModes = defaultParameters.getSupportedFlashModes();
boolean isSupportedFlashMode = (supportFlashModes != null && supportFlashModes.contains(Camera.Parameters.FLASH_MODE_ON));
它工作正常,支持的闪光灯模式 return 前置摄像头的 4 个值(开、关、auto_flash、always_flash)。
但是当我检查新的 Camera2 API 时使用:
Boolean b = characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);
boolean isSupportedFlashMode = b != null ? b : false;
isSupportedFlashMode
总是 return false
用于前置摄像头。如果我使用以下方法检查支持的闪光灯模式:
characteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES);
它也是 return 只有 2 个值(ae_on、ae_off)。
有谁知道如何解决这个问题?请注意,我只想检查设备 前置闪光灯 的可用性。谢谢。
更新
这些方法在我的 Q-Mobile 设备(也有一个真正的 LED 前置闪光灯)上工作得很好,但在三星 J7 Pro 上仍然不起作用。不知道为什么?
看来是设备相关的问题。我公司使用 camera2 API 的应用程序也面临同样的问题。
我已经尝试用一个简单的示例对其进行测试,OpenCamera 但其中 none 有效。然后我决定把这个bug搁置到现在,因为有前置闪光灯的设备数量很少,而且大多数都工作正常。
我正在三星 J7 Pro 上测试我的相机应用程序,它有 前置闪光灯(真正的硬件 LED 闪光灯)。当我检查 front flash 可用于已弃用的 Camera API 使用:
List<String> supportFlashModes = defaultParameters.getSupportedFlashModes();
boolean isSupportedFlashMode = (supportFlashModes != null && supportFlashModes.contains(Camera.Parameters.FLASH_MODE_ON));
它工作正常,支持的闪光灯模式 return 前置摄像头的 4 个值(开、关、auto_flash、always_flash)。
但是当我检查新的 Camera2 API 时使用:
Boolean b = characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);
boolean isSupportedFlashMode = b != null ? b : false;
isSupportedFlashMode
总是 return false
用于前置摄像头。如果我使用以下方法检查支持的闪光灯模式:
characteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES);
它也是 return 只有 2 个值(ae_on、ae_off)。
有谁知道如何解决这个问题?请注意,我只想检查设备 前置闪光灯 的可用性。谢谢。
更新
这些方法在我的 Q-Mobile 设备(也有一个真正的 LED 前置闪光灯)上工作得很好,但在三星 J7 Pro 上仍然不起作用。不知道为什么?
看来是设备相关的问题。我公司使用 camera2 API 的应用程序也面临同样的问题。
我已经尝试用一个简单的示例对其进行测试,OpenCamera 但其中 none 有效。然后我决定把这个bug搁置到现在,因为有前置闪光灯的设备数量很少,而且大多数都工作正常。