同时打开相机并设置手电筒模式

Posted

技术标签:

【中文标题】同时打开相机并设置手电筒模式【英文标题】:open camera and set torch mode at same time 【发布时间】:2019-12-10 11:51:30 【问题描述】:

我想使用camera2 api在android中。但由于打开相机的优先级较高,手电筒模式被关闭。如何同时使用两者?

private void openCamera() 抛出 CameraAccessException CameraManager cameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE); cameraId = cameraManager.getCameraIdList()[0];

    CameraCharacteristics cc = cameraManager.getCameraCharacteristics(cameraId);

    StreamConfigurationMap map = cc.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
    imageDimensions = map.getOutputSizes(SurfaceTexture.class)[0];


    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) 

       return;
    
    cameraManager.openCamera(cameraId, stateCallback, null);
    cameraManager.setTorchMode(cameraId, true);



在 camera2 api 中不能同时使用两者

【问题讨论】:

【参考方案1】:

相机打开后,您可以使用FLASH_MODE 并将其设置为TORCH 在您的预览捕捉请求中。

这意味着您需要将 AE_MODE 保持为 ON 或 OFF,而不是任何一种 FLASH 模式,这样自动曝光就不会控制闪光灯。

【讨论】:

以上是关于同时打开相机并设置手电筒模式的主要内容,如果未能解决你的问题,请参考以下文章

使用相机时如何打开/关闭手电筒?

使用相机手电筒不允许更改面对模式 - Navigator.mediaDevices

如何使用qt打开相机闪光灯或手电筒?

如何在不破坏相机应用程序的情况下在Android手机上打开手电筒[重复]

从Web浏览器打开/关闭移动手电筒

使用相机闪光灯作为手电筒的应用程序使用 Eclipse 不工作