【发布时间】:2018-08-31 19:34:06
【问题描述】:
我正在三星 J7 Pro 上测试我的相机应用程序,它有 前置闪光灯(真正的硬件 LED 闪光灯)。当我使用已弃用的 Camera API 检查 前置闪光灯 时:
List<String> supportFlashModes = defaultParameters.getSupportedFlashModes();
boolean isSupportedFlashMode = (supportFlashModes != null && supportFlashModes.contains(Camera.Parameters.FLASH_MODE_ON));
它工作正常,支持的闪光灯模式为前置摄像头返回 4 个值(on、off、auto_flash、always_flash)。
但是当我使用新的Camera2 API 进行检查时:
Boolean b = characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);
boolean isSupportedFlashMode = b != null ? b : false;
isSupportedFlashMode 总是返回false 用于前置摄像头。如果我使用以下方法检查支持的闪光模式:
characteristics.get(CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES);
它也只返回 2 个值(ae_on、ae_off)。
有谁知道如何解决这个问题?请注意,我只是想检查设备的前置闪光灯是否可用。谢谢。
更新
这些方法在我的 Q-Mobile 设备(也有真正的 LED 前置闪光灯)上运行良好,但在三星 J7 Pro 上仍然无法运行。不知道为什么?
【问题讨论】:
-
我正在寻找J7设备来回答^^
-
@AlexCohn 我已经准备好尝试使用他们的三星 Galaxy SDK,但它建立在 camera2 之上,也不适用于我的 J7 pro。今晚我会尝试借另一个J7 pro测试一下。
-
这个前置摄像头是
CameraCharacteristics.get(INFO_SUPPORTED_HARDWARE_LEVEL) == INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY? -
@AlexCohn 不,我已经为具有硬件支持级别 == LEGACY 的设备禁用了 camera2。 :(
-
另一个问题:当你询问camera2是否有前置闪光灯时,你得到了错误的答案;但是你能通过camera2操纵这个闪光灯吗?或者您必须简单地将 J7Pro 列入假装拥有 camera2 但需要旧的 Camera API 才能可靠工作的设备的黑名单?
标签: android android-camera android-camera2