我在我的应用程序中使用相机闪光灯,我已完成编码,它正在开灯/关灯。 但是2秒后它会关闭。如果我再次按下开启按钮则会关闭力量。 这是我正在使用的代码,请帮助我。
如果用户按下开启按钮指示灯亮起,我想要这样,直到用户按下关闭按钮。
private void processOffClick() {
//togglebutton.setButtonDrawable(R.drawable.offbutton);
System.out.println("in off state");
if( cam != null ){
cam.stopPreview();
cam.release();
}
}
private void processOnClick() {
//togglebutton.setButtonDrawable(R.drawable.onbutton);
System.out.println("in on state");
cam = Camera.open();
Parameters params = cam.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_ON);
cam.setParameters(params);
cam.startPreview();
cam.autoFocus(new AutoFocusCallback() {
public void onAutoFocus(boolean success, Camera camera) {
}
});
}
答案 0 :(得分:1)
放线:
Parameters params = cam.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_ON);
cam.setParameters(params);
在processOffClick中,而不是将其放入processOnClick中 那样:
boolean clicked = false;
private void processOffClick() {
//togglebutton.setButtonDrawable(R.drawable.offbutton);
clicked = false;
System.out.println("in off state");
if( cam != null ){
cam.stopPreview();
cam.release();
}
}
private void processOnClick() {
clicked = true;
//togglebutton.setButtonDrawable(R.drawable.onbutton);
System.out.println("in on state");
cam = Camera.open();
Parameters params = cam.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_ON);
while(clicked) {
cam.setParameters(params);
cam.startPreview();
cam.autoFocus(new AutoFocusCallback() {
public void onAutoFocus(boolean success, Camera camera) {
}
});
}
}
它可能有效,我没有检查代码
我添加了一个while循环,因此它可以保持闪光和焦点,直到它没有被取消。
答案 1 :(得分:1)
我的经验说,闪光模式应该是“TORCH”(如果支持),它只在你开始预览时启动。但是,相机在不同设备上的表现非常不同,并不总是如其功能描述符中所宣传的那样
答案 2 :(得分:0)
1.开启
camera = Camera.open();
Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();
2。关闭
camera = Camera.open();
Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.stopPreview();
并且,在AndroidManifest.xml上添加以下权限。
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
请参阅此http://www.mkyong.com/android/how-to-turn-onoff-camera-ledflashlight-in-android/