手电筒相机2 API [英] Flashlight Camera2 API

查看:55
本文介绍了手电筒相机2 API的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以在 Android Camera2 API 中同时使用相机预览和手电筒吗?

Can I use camera preview and flashlight at the same time in Android Camera2 API?

当我尝试使用 CameraManager.setTorchMode(String cameraId, boolean enabled) 时,它在相机未打开时工作正常.但是当相机打开并且我尝试 setTorchMode 我收到这个异常:

When I try use CameraManager.setTorchMode(String cameraId, boolean enabled) it's work fine when camera is not opened. But when Camera is open and I try setTorchMode I receive this exception:

CameraService: setTorchMode: 相机 0 的手电筒模式不可用,因为相机正在使用中

CameraService: setTorchMode: torch mode of camera 0 is not available because camera is in use

推荐答案

设置 FLASH_MODE 和 AE_MODE 很重要.以下是工作代码:

Setting both FLASH_MODE and AE_MODE is important. Below is the working piece of code:

public void toggleFlashMode(boolean enable){
try {
            if (mCameraType.equals(CameraType.BACK)) {
                if (enable) {
                    mPreviewRequestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_TORCH);
                    mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
                } else {
                    mPreviewRequestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);
                    mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_OFF);
                }
                mCaptureSession.setRepeatingRequest(mPreviewRequestBuilder.build(), null, null);
            }
        } catch (CameraAccessException e) {
            e.printStackTrace();
        }
}

这篇关于手电筒相机2 API的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆