CameraX 库打开手电筒

好久没有写文章了,罪过,这几个月一直很忙,都没有时间进步了。。。

最近新开发一个项目,正好拿google的jetpack组件练练手,于是就集成了CameraX。里面很多坑啊,都在度娘的帮助下解决了。

不过还有一个问题,google和度娘都帮不了我了,在此记录一下:CameraX 库怎么打开手电筒?

其实有两种方法

  • 这种方式很简单: 官方demo里面获取到了camera对象,注意是androidx.camera.core.Camera包下面的,可以利用这个对象来控制手电筒:
// 打开手电筒
camera?.cameraControl?.enableTorch(true)
// 关闭手电筒
camera?.cameraControl?.enableTorch(false)
  • 还有一种就是直接使用camera2的方式
val cameraInfo = camera?.cameraInfo
if(cameraInfo is CameraInfoInternal) {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {val id = cameraInfo.cameraIdval c = mContext.getSystemService(Context.CAMERA_SERVICE) as CameraManagertry {// 打开手电筒c.setTorchMode(id, true)// 关闭手电筒c.setTorchMode(id, true)} catch (e:java.lang.Exception) {ToastUtil.show(mContext, "手电筒打开失败$e")}}
}

其实第一种方式是发送了一个livedata消息,最终实现还是使用了第二种方式

当然拍照时按下快门的时候控制是否开启闪光灯,也是有方法的:

// 按下快门时:根据光线强弱自动打开闪光灯
imageCapture?.flashMode = ImageCapture.FLASH_MODE_AUTO
// 按下快门时:强制打开闪光灯
imageCapture?.flashMode = ImageCapture.FLASH_MODE_ON
//按下快门时:强制关闭闪光灯
imageCapture?.flashMode = ImageCapture.FLASH_MODE_OFF

CameraX 库打开手电筒的两种方式相关推荐

  1. linux的进程与库之间的通信两种方式

    文章目录 前言 一.进程A与算法库b的通信方式之一:动态dlopen加载算法库b,编译的时候是需要加载该头文件就可以,无需连接该算法库b 具体的实施细节: 二.进程A与算法库b的通信方式之二:进程A编 ...

  2. android 打开网页的两种方式.

    有时候我们要在自己的应用中打开一个网页. 这是本人用到 的两种方式. 1.  网页放置于自己的ACTIVITY              1.1 在资源文件中申明WIDGET <WebView ...

  3. Android打开蓝牙的两种方式

    隐式打开方式 关键API使用如下: if ( !bluetoothAdapter.isEnabled()) {boolean res = bluetoothAdapter.enable();} 完整判 ...

  4. 利用requests库获取cookie的两种方式

    第一种: from fake_useragent import UserAgent import requestsdef get_Cookies0():ua = UserAgent().ie #随机获 ...

  5. android webview打开pdf 的两种方式

    方法1:利用设备自带浏览器打开pdf private void loadPDF1(){ mWebView.getSettings().setJavaScriptEnabled(true); mWebV ...

  6. python用浏览器打开网页的两种方式

    import os import webbrowser os.system('"C:/Program Files/Internet Explorer/iexplore.exe" h ...

  7. 【Android 逆向】Android 进程代码注入原理 ( 注入本质 | 静态注入和动态注入 | 静态注入两种方式 | 修改动态库重打包 | 修改 /data/app/xx/libs 动态库 )

    文章目录 一.注入本质 二.静态注入和动态注入 三.静态注入两种方式 ( 修改动态库重打包 | 修改 /data/app/packageName/libs/ 下的动态库 ) 一.注入本质 进程注入本质 ...

  8. 主程序调用动态库的两种方式,动态库调用主程序的函数

    主程序调用动态库有两种方式,即隐式调用和显式调用. 隐式调用就是共享方式,程序一开始运行就调进去.在链接时候用如下的方式链接动态库:gcc -o main main.o -L./lib -ltest( ...

  9. mysql不停止重启服务器_不停止MySQL服务增加从库的两种方式

    现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库.前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作. ...

最新文章

  1. 带调色板的位图BMP和不带调色板的BMP
  2. mybatis-plus中的问题总结
  3. crontab 执行时间与系统时间不一致
  4. linux c 定时器
  5. 电商网站的积分要不要年末清零?
  6. SpringCloud之微服务
  7. 传智播客JavaWeb day11--事务的概念、事务的ACID、数据库锁机制、
  8. Flutter Mac下环境配置
  9. 用拖拉实现设备驱动配置(EsayHMI最新驱动配置方式)
  10. jupyternotebook虚拟环境无法连接服务_详解pycharm连接远程linux服务器的虚拟环境的方法_python...
  11. 目标检测第4步:显卡、GPU、CUDA、cuDNN的介绍及如何在Windows 10下安装cuDNN?
  12. java calendar 毫秒_java Calendar(将时间精确到毫秒)
  13. mysql run sql files_HeidiSQL_5.1_Sourcecode
  14. Linux命令find查询suid和sgid
  15. WinHttp用法(WinHttp.WinHttpRequest.5.1)
  16. 大厂Android相关岗位校招职位要求汇总
  17. 「津津乐道播客」#309 厂长来了:我们买买买了这么多年,然后呢?(feat. 只二)...
  18. 七代处理器装win7_为什么7代cpu装不了win7
  19. 互联网创业的三年都学到了什么?
  20. ps打开图片的三种方式 同步部分基本操作方式

热门文章

  1. 06HTML和CSS知识点总结(六)
  2. 直播答题APP撒币背后,这些行业可能被革命!
  3. Origin——绘制带误差棒(条)(error bar)的曲线
  4. 微信公众号开发以及测试公众号前端自测网页授权
  5. 让英语水平暴涨的超棒方法
  6. 我是AI工程师,却在猪厂做“美容”
  7. 【用win 7系统玩游戏网络延时高?】
  8. 大数据仍未攻克的五大世界性难题
  9. 切·格瓦拉: 让我们忠于梦想 让我们面对现实
  10. 如何选择一个好的应用进行推广渠道?