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服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作. ...
最新文章
- idea提交新项目到远程git创库
- SQL 语句递归查询 With AS 查找所有子节点
- Java BigDecimal初探
- CORS(跨域资源共享)
- MySQL - cast()函数
- android商品mysql_android使用mysql的方法总结
- vscode中控制台不能输入_vscode调试时如何在控制台输入
- linux添加用户、权限
- 祝心想事成无Bug,1024快乐!
- [Ubuntu] 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
- LINUX下载编译tiff
- Druid 在有赞的使用场景及应用实践
- 【Java基础教程】Java的输入输出
- 《Android框架揭秘》读书笔记--在Java中调用C库函数
- android usb 摄像头 驱动开发,自制USB摄像头硬件的驱动编写_修改UVC
- 【股票】股票是什么?什么情况下股票会涨?
- 2019年幼儿教师如何报名考取?教育部中央电教馆幼师证报名考取详情
- Android Java 虚拟机
- 面试官问你如何进行程序设计?——设计模式之七大原则——接口隔离、合成复用、迪米特法则以及C++设计实现
- 网页复制内容修改(解决复制文本多空格问题,带标注信息(如版权信息))