Индикатор камеры Android гаснет через 2 секунды?
Я использую вспышку камеры в своем приложении, я сделал кодирование для этого, он работает вкл / выкл света. но через 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) {
}
});
}
3 ответа
Поставить строки:
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. Включите
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/