首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android 4.4 :相机手电筒只闪烁几次

Android 4.4 :相机手电筒只闪烁几次
EN

Stack Overflow用户
提问于 2014-07-30 21:19:11
回答 2查看 454关注 0票数 0

我已经研究了stackoverflow中与相机手电筒相关的其他问题,但找不到解决我的问题的答案。手电筒闪烁6-8次,然后应用程序崩溃。在这里,我有一个在循环中调用cameraon()cameraoff()blink()方法。你能告诉我哪里出错了吗?我的代码可以在这里找到:http://pastebin.com/3LRMwd1J日志输出可以在这里看到:http://pastebin.com/2GTpn8Ux

我尝试过使用表面纹理,尝试将Thread.sleep()包含在cameraon()cameraoff()之间,但到目前为止还没有成功。

我使用的是带有最新sdk和jdk版本的Android 4.4。我使用nexus5进行测试。

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2014-07-30 22:11:50

只需将Thread放在Blink()方法中,并将代码放入if else

布尔tourchon=false;

代码语言:javascript
复制
Thread thread = new Thread(new Runnable() {

            @Override
            public void run() {
            for (int i = 0; i < 10; i++) {

             if(tourchon){
               cameraoff();
               tourchon=false;
             }else{
                cameraon();
               tourchon=true;
             }
         try {
                        Thread.sleep(200);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
         }
         }
        });
        thread.start();

试试这段代码。

票数 1
EN

Stack Overflow用户

发布于 2014-07-30 23:35:07

将获取相机对象的方法与cameraOn()方法分开,因为我知道这个方法应该打开闪光灯,在这么短的时间内多次调用open()可能会像this文档所建议的那样导致您的问题。

警告:在某些设备上,此方法可能需要很长时间才能完成。最好从辅助线程(可能使用AsyncTask)调用此方法,以避免阻塞主应用程序UI线程。

因此,让您的打开和关闭方法只需更改闪光灯模式,因为您已经有了相机实例。

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

https://stackoverflow.com/questions/25037897

复制
相关文章

相似问题

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