【发布时间】:2017-06-16 17:24:29
【问题描述】:
我正在为Kyocera E6820 编写一个高度专业化的应用程序,它要求设备的广角相机和手电筒同时打开。
我正在使用Camera2 Android API。问题是默认情况下广角相机不支持闪光灯,所以如果我尝试通过执行以下操作同时打开手电筒和广角相机:
mPreviewRequestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_TORCH);
mPreviewRequest = mPreviewRequestBuilder.build();
mCaptureSession.setRepeatingRequest(mPreviewRequest, mCaptureCallback, mBackgroundHandler);
我收到一条错误消息:
W/LegacyRequestMapper: mapAeAndFlashMode - Ignore flash.mode == TORCH;camera does not support it
我尝试通过使用常规后置摄像头(确实支持闪光灯)打开闪光灯来解决此问题,而无需通过执行以下操作来打开它:
manager.openCamera(wideAngleCameraID, mStateCallback, mBackgroundHandler);
manager.setTorchMode(rearFacingCameraID, true);
但是,它不起作用,我收到了这条消息:
W/System.err: android.hardware.camera2.CameraAccessException: The system-wide limit for number of open cameras has been reached, and more camera devices cannot be opened until previous instances are closed.
我可以让普通的后置摄像头和手电筒同时开启,但广角则没有这样的运气。
有人知道解决这个问题的潜在方法吗?我已经浏览了this post,但没有发现任何有用的东西。由于这是一个如此专业的应用程序,因此执行诸如 root 电话或直接与设备的 LED 驱动器对话之类的操作并非不可能,但我需要知道从哪里开始。任何方向或帮助将不胜感激。
【问题讨论】:
标签: java android camera android-camera2 flashlight