android - 在 Android 中强制相机 LED 灯在 n 分钟或 n 秒后关闭

标签 android android-camera

我正在研究打开/关闭相机手电筒。

我想做的是:

  1. 当用户点击启动 LED 按钮时,它应该启动相机 LED。
  2. 在 n 秒后自动停止摄像头 LED,例如。 30 秒后(这完全取决于用户设置)。
  3. 当用户按下“停止 LED”按钮时停止摄像头 LED

我使用 ToggleButton 来启动和停止相机 LED。

这是我所做的:

 toggleLED.setOnClickListener(new OnClickListener() {  
            public void onClick(View v) {      

                if (toggleLED.isChecked())
                {
                    startLED();
                }
                else      
                {
                    stopLED();
                }
            }
        });

到目前为止,我已成功打开和关闭相机灯。

开启:

void startLED(){
    Camera cam;
    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) {
                }
     });
}

对于关闭:

void stopLED() {
    cam.stopPreview();
    cam.release();
}

ToggleButton 的功能运行良好。

但我想要的是: 如何在 n 秒后关闭相机灯?

已编辑:

我试过使用它并且它完全可以正常工作..但我想知道我是否以正确的方式进行..

 Runnable r = new Runnable()
              {
                  public void run()
                  {
                      stopLED();                  

                  }
              };


toggleLED.setOnClickListener(new OnClickListener() {  
            public void onClick(View v) {      
                // Perform action on clicks     



                if (toggleLED.isChecked())
                {
                    startLED();                 

                    int onledseconds=pref.getInt(MySettings.SHUTOFF_PERIOD,0);                  

                    if(onledseconds!=0)
                        handler.postDelayed(r,ledonseconds);
                }
                else      
                {

                    stopLED();
                }
            }
        });      

最佳答案

使用 AlarmManager安排一个将关闭相机灯的 PendingIntent。通过使用 AlarmManager,您可以确保即使您的应用程序被系统暂停或终止,它仍会运行。

您可以在 Android: How to use AlarmManager 查看一些示例代码

关于android - 在 Android 中强制相机 LED 灯在 n 分钟或 n 秒后关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6972474/

相关文章:

android - 显示进度条直到下一个 Activity 开始

javascript - 移动滚动条固定元素底部透明开口

android - 将元数据添加到 Android 中创建的位图中

Android:拍摄的照片比预览大

java - 从 Google Plus api 注销

android - 我不知道为什么 SDK Manager standalone 不起作用

android - NetworkUsage Android 代码示例在启动时崩溃?

android - MediaStore.EXTRA_VIDEO_QUALITY 不适用于 Android 视频捕获

android - Camera Source (Google Mobile Vision) 在某些设备上返回旋转图像

java - 点击返回时相机变黑(二维码)