首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android延迟手电筒

android延迟手电筒
EN

Stack Overflow用户
提问于 2015-08-19 09:23:54
回答 1查看 749关注 0票数 1

我用两个按钮做了一个简单的应用程序来测试手电筒。

代码语言:javascript
复制
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 re欲500。

这个应用程序在这两个方面都很好。问题是:手电筒的开/关延迟了。

当我按下开关非常快,手电筒的愿望500,它的关闭和打开,我按下按钮,但在HTC ONE有一个延迟(它看起来你不允许切换那么快的手电筒)。有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-19 09:42:20

您可以通过使用Hander添加一个固定的延迟来解决这个问题,这将触发延迟后的闪存,

代码语言:javascript
复制
// 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);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32091490

复制
相关文章

相似问题

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