安卓相机LED指示灯在2秒后熄灭?

时间:2011-11-14 06:48:05

标签: android camera led

我在我的应用程序中使用相机闪光灯,我已完成编码,它正在开灯/关灯。 但是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 个答案:

答案 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/