如何在Android中创建快速或慢速相机闪光灯闪烁信号?

如何在Android中创建快速或慢速相机闪光灯闪烁信号?,第1张

概述我提供的服务可以使闪光灯闪烁信号:publicclassFlashBlinkServiceextendsService{privatestaticCameracam=null;privateHandlerhandler=newHandler();@OverridepublicIBinderonBind(Intentintent){

我提供的服务可以使闪光灯闪烁信号:

    public class FlashBlinkService extends Service     {        private static Camera cam = null;        private Handler handler = new Handler();        @OverrIDe        public IBinder onBind(Intent intent)         {            return null;        }        @OverrIDe        public voID onCreate()        {            super.onCreate();            startFlashBlink();              }        //for simulating flash blink        Runnable flashBlinkRunnable = new Runnable()        {            public voID run()             {                   cam = Camera.open();                Parameters p = cam.getParameters();                p.setFlashMode(Parameters.FLASH_MODE_TORCH);                cam.setParameters(p);                cam.startPrevIEw();                p.setFlashMode(Parameters.FLASH_MODE_OFF);                cam.setParameters(p);                cam.stopPrevIEw();                cam.release();                cam = null;                //--->                handler.post(flashBlinkRunnable);            }               };        //start flash blink light        public voID startFlashBlink()        {            flashBlinkRunnable.run();        }        //stop flash blink light        public voID stopFlashBlink()        {            handler.removeCallbacks(flashBlinkRunnable);            stopCamera(cam);        }        //stop camera        private voID stopCamera(Camera cam)        {            if (cam != null)            {                cam.stopPrevIEw();                cam.release();                cam = null;            }        }        @OverrIDe        public voID onDestroy()        {            super.onDestroy();            handler.removeCallbacks(flashBlinkRunnable);            stopCamera(cam);        }    }

对于我来说,这是“最快”的闪光灯闪烁解决方案.发出更快或更慢的闪光灯闪烁信号的最佳方法是什么?市场上有许多提供此选项的应用程序(例如手电筒).谢谢.

解决方法:

我已经通过以下方式完成了此任务.频闪(闪烁)的频率由Thread.sleep()函数中的sleepMS变量控制.例如,如果要以10 Hz的频率闪烁10次,则可以设置

sleepMS=(1/10)*50;flashCount=10;

或更笼统:

sleepMS=(1/Hz)*1000/2

不确定是实现此目的的最佳方法,但它是否有效.

Camera cam;Parameters params;private voID main(){    cam = Camera.open();    params = cam.getParameters();    cam.setPrevIEwTexture(new SurfaceTexture(0));    cam.startPrevIEw();    for (int i = 0; i < flashCount; i++) {        flipFlash();        Thread.sleep(sleepMS);        flipFlash();        Thread.sleep(sleepMS);    }    cam.stopPrevIEw();    cam.release();}private voID flipFlash(){    if (islighOn) {        params.setFlashMode(Parameters.FLASH_MODE_OFF);        cam.setParameters(params);        islighOn = false;    } else{        params.setFlashMode(Parameters.FLASH_MODE_TORCH);        cam.setParameters(params);        islighOn = true;    }}
总结

以上是内存溢出为你收集整理的如何在Android中创建快速或慢速相机闪光灯闪烁信号?全部内容,希望文章能够帮你解决如何在Android中创建快速或慢速相机闪光灯闪烁信号?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1088099.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存