【问题标题】:android delaying flashlightandroid延迟手电筒
【发布时间】:2015-08-19 09:23:54
【问题描述】:

我制作了一个带有 2 个按钮的简单应用程序来测试手电筒。

button1.setOnClickListener...etc
    if (cameraObj ==null){ return; }
    Camera.Parameters cameraParams =cameraObj.getParameters();
    if(cameraParams.getFlashMode() == null) { return;}
    cameraParams.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
    cameraObj.setParameters(cameraParams);
    cameraObj.startPreview(); 

button2.setOnClick etc...
    if(cameraObj==null){ return; }
    Camera.Parameters cameraParams = cameraObj.getParameters();
    cameraParams.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
    cameraObj.setParameters(cameraParams);
    cameraObj.stopPreview(); 

该应用在 2 台设备上进行了测试:HTC ONE 和 HTC DESIRE 500

该应用程序在两者上都运行良好。问题是:打开/关闭手电筒有延迟。

当我快速打开和关闭时,DESIRE 500 上的手电筒在我按下按钮时会关闭和打开,但在 HTC ONE 上会出现延迟(看起来你不能快速切换手电筒)。可能是什么问题呢?

【问题讨论】:

    标签: android flashlight


    【解决方案1】:

    您可以通过使用Hander 添加固定延迟来解决此问题,这将在延迟后触发闪光,

    // variable to fix the timeout duration in milliseconds
    // 1000 milliseconds = 1 second
    double TIME_OUT = 2*1000;
    
           new Handler().postDelayed(new Runnable() {
    
                @Override
                public void run() {
    
                    // time has been reached, turn the flash on
                   if (cameraObj ==null){ return; }
                   Camera.Parameters cameraParams =cameraObj.getParameters();
                   if(cameraParams.getFlashMode() == null) { return;}
                   cameraParams.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
                   cameraObj.setParameters(cameraParams);
                   cameraObj.startPreview(); 
                    }
                }
            }, TIME_OUT);
    

    【讨论】:

    • 我在 HTC ONE 上更仔细地测试了该应用程序,似乎解决方案是:在 HTC ONE 上,我必须按 2 次“关闭”按钮才能关闭手电筒。太吓人了。所以在Desire上,如果我只按一次,闪光灯就会熄灭,而在ONE上我必须按两次。 (是同一个应用程序)可能是因为我使用了一个已弃用的类? (一个有 Android 5.x 和 Desire Android 4.1x)
    • 这也可能是特定于设备的问题。有些设备需要一些时间来初始化相机功能,而其他一些设备会立即运行它。到目前为止,您的代码没有问题!
    • 如果我非常快地按一次打开和两次关闭,它的工作方式就像我按一次欲望一次打开和一次关闭非常快。
    猜你喜欢
    • 1970-01-01
    • 2020-11-25
    • 2020-01-12
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多