首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检索cameraID并使用setTorchMode?

如何检索cameraID并使用setTorchMode?
EN

Stack Overflow用户
提问于 2015-08-31 05:12:07
回答 2查看 616关注 0票数 2

所以Android最近出现了,它现在有一个内置的摄像头功能,叫做setTorchMode。我很好奇这些参数是如何工作的(字符串cameraID,布尔值true/false)。很明显,布尔值决定了灯是开着还是关着,但是如何得到cameraID呢?我知道有一个名为getCameraIDList的方法,但是它返回一个I数组,而不仅仅是一个。你怎么知道清单上哪一个要用?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-02 21:06:55

您应该使用CameraManager "getCameraIdList“函数,它将检索一个字符串列表,其中每个字符串代表一个活动摄像机。

票数 1
EN

Stack Overflow用户

发布于 2018-03-05 09:31:16

代码语言:javascript
复制
 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        mCameraManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
        try {
            for (String camID : mCameraManager.getCameraIdList()) {
                CameraCharacteristics cameraCharacteristics = mCameraManager.getCameraCharacteristics(camID);
                int lensFacing = cameraCharacteristics.get(CameraCharacteristics.LENS_FACING);
                if (lensFacing == CameraCharacteristics.LENS_FACING_FRONT && cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)) {
                    mCameraId = camID;
                    break;
                } else if (lensFacing == CameraCharacteristics.LENS_FACING_BACK && cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)) {
                    mCameraId = camID;
                }
            }
            if (mCameraId != null) {
                mCameraManager.setTorchMode(mCameraId, true);
            }
        } catch (CameraAccessException e) {
            e.printStackTrace();
        }
    }

如果可用,mCameraId将打开前摄像头闪光灯,如果可用,则打开相机闪光灯。如果没有可用的闪存,那么mCameraId将为null,而setTorchMode将不会被调用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32304341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档