This post follows from the previous post on setting focus modes in OpenCV using JavaCameraView.
In that post, we created a class that extended from JavaCameraView and we defined methods that could be used to set different focus modes.
OpenCv for Android |
Here, we are going to extend the functionality of that class by creating a method that can be used to set flash on of off or other flash modes like red eye, continuous video or torch. Please go through the first part first. This method is just an addition to that class.
Flashlight turned on |
public void setFlashMode(Context item, int type) {
Camera.Parameters params = mCamera.getParameters();
List<String> FlashModes = params.getSupportedFlashModes();
switch (type) {
case 0:
if (FlashModes.contains(Camera.Parameters.FLASH_MODE_AUTO))
params.setFlashMode(Camera.Parameters.FLASH_MODE_AUTO);
else
Toast.makeText(item, "Auto Mode not supported", Toast.LENGTH_SHORT).show();
break;
case 1:
if (FlashModes.contains(Camera.Parameters.FLASH_MODE_OFF))
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
else
Toast.makeText(item, "Off Mode not supported", Toast.LENGTH_SHORT).show();
break;
case 2:
if (FlashModes.contains(Camera.Parameters.FLASH_MODE_ON))
params.setFlashMode(Camera.Parameters.FLASH_MODE_ON);
else
Toast.makeText(item, "On Mode not supported", Toast.LENGTH_SHORT).show();
break;
case 3:
if (FlashModes.contains(Camera.Parameters.FLASH_MODE_RED_EYE))
params.setFlashMode(Camera.Parameters.FLASH_MODE_RED_EYE);
else
Toast.makeText(item, "Red Eye Mode not supported", Toast.LENGTH_SHORT).show();
break;
case 4:
if (FlashModes.contains(Camera.Parameters.FLASH_MODE_TORCH))
params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
else
Toast.makeText(item, "Torch Mode not supported", Toast.LENGTH_SHORT).show();
break;
}
mCamera.setParameters(params);
}
Use this method as an addition to the method defined in the post describing the focus modes in openCV JavaCameraView, and you will be able to use various flash mode of your device. Feel free to contact me or comment below if you have any issues, till then happy coding and cheers!