我用两个按钮做了一个简单的应用程序来测试手电筒。
button1.setOnClickListener...etc
if (cameraObj ==null){ return; }
Camera.Parameters cameraParams =cameraObj.getParameters();
if(cameraParams.getFlashMode() == null) { return;}
cameraParams.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
cameraObj.setParameters(cameraParams);
cameraObj.startPreview();
button2.setOnClick etc...
if(cameraObj==null){ return; }
Camera.Parameters cameraParams = cameraObj.getParameters();
cameraParams.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
cameraObj.setParameters(cameraParams);
cameraObj.stopPreview(); 该应用程序在2台设备上进行了测试: HTC ONE和HTC re欲500。
这个应用程序在这两个方面都很好。问题是:手电筒的开/关延迟了。
当我按下开关非常快,手电筒的愿望500,它的关闭和打开,我按下按钮,但在HTC ONE有一个延迟(它看起来你不允许切换那么快的手电筒)。有什么问题吗?
发布于 2015-08-19 09:42:20
您可以通过使用Hander添加一个固定的延迟来解决这个问题,这将触发延迟后的闪存,
// variable to fix the timeout duration in milliseconds
// 1000 milliseconds = 1 second
double TIME_OUT = 2*1000;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// time has been reached, turn the flash on
if (cameraObj ==null){ return; }
Camera.Parameters cameraParams =cameraObj.getParameters();
if(cameraParams.getFlashMode() == null) { return;}
cameraParams.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
cameraObj.setParameters(cameraParams);
cameraObj.startPreview();
}
}
}, TIME_OUT);https://stackoverflow.com/questions/32091490
复制相似问题