首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android摄像头LED灯在2秒后熄灭?

Android摄像头LED灯在2秒后熄灭?
EN

Stack Overflow用户
提问于 2011-11-14 14:48:05
回答 3查看 2.2K关注 0票数 0

我在我的应用程序中使用了相机闪光灯,我已经完成了这方面的编码,它在开/关灯下工作。但在2秒后,它就会关闭。如果我再按一次on按钮,它就会强制关闭。这是我正在使用的代码,请帮助我。

我想像这样,如果用户按下按钮灯打开,直到用户按下关闭按钮。

代码语言:javascript
复制
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) {
        }
    });      
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-14 20:48:07

将这些行放入:

代码语言:javascript
复制
Parameters params = cam.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_ON);
cam.setParameters(params);

而不是像这样放在processOnClick中:

代码语言:javascript
复制
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循环,这样它就可以保持flash和焦点,直到它被取消点击。

票数 1
EN

Stack Overflow用户

发布于 2011-11-15 18:23:50

我的经验告诉我,闪光灯模式应该是"TORCH“(如果支持),并且只有当你启动预览时才会启动。然而,摄像头在不同设备上的行为非常不同,并且并不总是如其功能描述符中所宣传的那样

票数 1
EN

Stack Overflow用户

发布于 2012-10-16 20:12:39

1.打开

代码语言:javascript
复制
camera = Camera.open();
Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();

  1. 关闭

代码语言:javascript
复制
camera = Camera.open();
Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.stopPreview();

并且,在AndroidManifest.xml上添加以下权限。

代码语言:javascript
复制
<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/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8118191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档