如何在OpenCV4Android示例Tutorial-1相机预览中使用相机闪光灯

时间:2015-12-11 13:11:21

标签: android opencv camera flashlight

当我使用以下代码时,结果是闪存已开启,但它出现错误“您的设备似乎不支持相机(或已锁定)。应用程序将关闭”。请建议我一种方法,以便在闪光灯开启的情况下查看相机预览。

private Camera mCamera;
void ledOn(){
    Camera.Parameters p = mCamera.getParameters();

    p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);

    mCamera.setParameters(p);
}

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我修改了一些代码及其工作:

public class OpenCvCameraView extends JavaCameraView {

    public OpenCvCameraView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public List<String> getEffectList() {
        return mCamera.getParameters().getSupportedFlashModes();
    }

    public boolean isEffectSupported() {
        return (mCamera.getParameters().getFlashMode() != null);
    }

    public String getEffect() {
        return mCamera.getParameters().getFlashMode();
    }

    public void setEffect(String effect) {
        if(mCamera != null) {
            mCamera.getParameters();
            Camera.Parameters params = mCamera.getParameters();
            params.setFlashMode(effect);
            mCamera.setParameters(params);
        }
    }

    public void cameraRelease() {
        if(mCamera != null){
            mCamera.release();
        }
    }
}    

并将此方法放入您的主要活动中:

    public void turnOnTorch() {
        mOpenCVCameraView.setEffect(Camera.Parameters.FLASH_MODE_TORCH);

    }

    public void turnOffTorch() {
        mOpenCVCameraView.setEffect(Camera.Parameters.FLASH_MODE_ON);