我正在开发一个应用程序,它可以与摄像头一起工作,但我得到了一个错误。当相机处于活动状态时,当手电筒打开或错误"E/ camera : Error 2"时,相机就会结冰。非常感谢。
public void FlashOn()
{
cam = Camera.open();
Camera.Parameters params = cam.getParameters();
if (params.getFlashMode().equals(Camera.Parameters.FLASH_MODE_ON))
{
params.setFlashMode(Camera.Parameters.FLASH_MODE_ON);
}
else
{
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
}
cam.setParameters(params);
cam.startPreview();
}
public void FlashOff()
{
Camera.Parameters params = cam.getParameters();
if (params.getFlashMode().equals(Camera.Parameters.FLASH_MODE_ON))
{
params.setFlashMode(Camera.Parameters.FLASH_MODE_ON);
}
else
{
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
}
cam.stopPreview();
cam.release();
}发布于 2017-12-21 08:14:05
我不认为您必须再次使用startPreview才能启用闪存。在一个较旧的项目中,我这样做是为了启用/禁用闪存:
Camera.Parameters params = camera.getParameters();
if (params.getFlashMode().equals(Camera.Parameters.FLASH_MODE_ON)) {
params.setFlashMode(Camera.Parameters.FLASH_MODE_ON);
} else {
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
}
camera.setParameters(params);另外,您可能希望使用AsyncTask打开/关闭相机,因为它是UI阻塞操作。
更新:您的方法应该是这样的。
public void FlashOn() {
Camera.Parameters params = cam.getParameters();
params.setFlashMode(Camera.Parameters.FLASH_MODE_ON);
cam.setParameters(params);
}对于FlashOff方法,情况将是相似的。
https://stackoverflow.com/questions/47919649
复制相似问题