CameraX 库打开手电筒的两种方式
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 库打开手电筒的两种方式相关推荐
- linux的进程与库之间的通信两种方式
文章目录 前言 一.进程A与算法库b的通信方式之一:动态dlopen加载算法库b,编译的时候是需要加载该头文件就可以,无需连接该算法库b 具体的实施细节: 二.进程A与算法库b的通信方式之二:进程A编 ...
- android 打开网页的两种方式.
有时候我们要在自己的应用中打开一个网页. 这是本人用到 的两种方式. 1. 网页放置于自己的ACTIVITY 1.1 在资源文件中申明WIDGET <WebView ...
- Android打开蓝牙的两种方式
隐式打开方式 关键API使用如下: if ( !bluetoothAdapter.isEnabled()) {boolean res = bluetoothAdapter.enable();} 完整判 ...
- 利用requests库获取cookie的两种方式
第一种: from fake_useragent import UserAgent import requestsdef get_Cookies0():ua = UserAgent().ie #随机获 ...
- android webview打开pdf 的两种方式
方法1:利用设备自带浏览器打开pdf private void loadPDF1(){ mWebView.getSettings().setJavaScriptEnabled(true); mWebV ...
- python用浏览器打开网页的两种方式
import os import webbrowser os.system('"C:/Program Files/Internet Explorer/iexplore.exe" h ...
- 【Android 逆向】Android 进程代码注入原理 ( 注入本质 | 静态注入和动态注入 | 静态注入两种方式 | 修改动态库重打包 | 修改 /data/app/xx/libs 动态库 )
文章目录 一.注入本质 二.静态注入和动态注入 三.静态注入两种方式 ( 修改动态库重打包 | 修改 /data/app/packageName/libs/ 下的动态库 ) 一.注入本质 进程注入本质 ...
- 主程序调用动态库的两种方式,动态库调用主程序的函数
主程序调用动态库有两种方式,即隐式调用和显式调用. 隐式调用就是共享方式,程序一开始运行就调进去.在链接时候用如下的方式链接动态库:gcc -o main main.o -L./lib -ltest( ...
- mysql不停止重启服务器_不停止MySQL服务增加从库的两种方式
现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库.前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作. ...
最新文章
- 带调色板的位图BMP和不带调色板的BMP
- mybatis-plus中的问题总结
- crontab 执行时间与系统时间不一致
- linux c 定时器
- 电商网站的积分要不要年末清零?
- SpringCloud之微服务
- 传智播客JavaWeb day11--事务的概念、事务的ACID、数据库锁机制、
- Flutter Mac下环境配置
- 用拖拉实现设备驱动配置(EsayHMI最新驱动配置方式)
- jupyternotebook虚拟环境无法连接服务_详解pycharm连接远程linux服务器的虚拟环境的方法_python...
- 目标检测第4步:显卡、GPU、CUDA、cuDNN的介绍及如何在Windows 10下安装cuDNN?
- java calendar 毫秒_java Calendar(将时间精确到毫秒)
- mysql run sql files_HeidiSQL_5.1_Sourcecode
- Linux命令find查询suid和sgid
- WinHttp用法(WinHttp.WinHttpRequest.5.1)
- 大厂Android相关岗位校招职位要求汇总
- 「津津乐道播客」#309 厂长来了:我们买买买了这么多年,然后呢?(feat. 只二)...
- 七代处理器装win7_为什么7代cpu装不了win7
- 互联网创业的三年都学到了什么?
- ps打开图片的三种方式 同步部分基本操作方式