Android手电筒、闪光灯、torch、flash
1. 仅开启手电筒
单纯的开启手电筒我们可以使用CameraManager的.setTorchMode()方法。
cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)获取该相机特征是否可获取闪光灯。
CameraManager cameraManager= (CameraManager) getSystemService(CAMERA_SERVICE);
String cameraIdList[]=cameraManager.getCameraIdList();
String cameraId = null;
for(int i=0;i<cameraIdList.length;i++){CameraCharacteristics cameraCharacteristics=cameraManager.getCameraCharacteristics(cameraIdList[i]);//可获取闪光灯&&朝向为后置if(cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)&&cameraCharacteristics.get(CameraCharacteristics.LENS_FACING)==CameraCharacteristics.LENS_FACING_BACK){cameraId=cameraIdList[i];break;}
}
//打开手电筒
cameraManager.setTorchMode(cameraId,true);
//关闭手电筒
cameraManager.setTorchMode(cameraId,false);
2. Camer2开启闪光灯
在Camera2中,我们一般在预览的捕获请求中设置开启或关闭闪光灯,然后向捕获通道设置新的捕获请求。
开启闪光灯:
captureRequestBuilder .set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_TORCH);
关闭闪光灯:
captureRequestBuilder .set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);
Button torch = findViewById(R.id.torch);
torch.setOnClickListener(new View.OnClickListener() {int i = 0;public void onClick(View view) {if (i == 0) {CaptureRequest.Builder captureRequestBuilder_preview = myCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);//设置开启闪光灯captureRequestBuilder_preview.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_TORCH);captureRequestBuilder_preview.addTarget(surface_surfaceView);//通道设置新循环捕获请求myCameraCaptureSession.setRepeatingRequest(captureRequestBuilder_preview.build(),null,null);i=1;} else if (i==1) {CaptureRequest.Builder captureRequestBuilder_preview= myCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);//设置关闭闪光灯captureRequestBuilder_preview.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);captureRequestBuilder_preview.addTarget(surface_surfaceView);//通道设置新循环捕获请求myCameraCaptureSession.setRepeatingRequest(captureRequestBuilder_preview.build(),null,null);i=0;}}
});
3. ZXing开启手电筒
扫码时经常需要使用手电筒,但是因为ZXing已经启动了一个相机所以无法使用CameraManager来开启手电筒;并且因为没有捕获通道所以也不能使用设置捕获请求开启手电筒。
但ZXing中的DecoratedBarcodeView控件类(即com.journeyapps.barcodescanner.DecoratedBarcodeView控件)提供了启动和关闭手电筒的方法。可以在自定义的Activity中通过DecoratedBarcodeView开关手电筒。
启动手电筒:.setTorchOn()
关闭手电筒:.setTorchOff()
可以在自定义Activity的onCreate()中使用这些方法。
Button torchButton=findViewById(R.id.torchButton);
torchButton.setOnClickListener(new View.OnClickListener() {int i=0;public void onClick(View view) {if(i==0){//启动手电筒barcodeScannerView.setTorchOn();i=1;} else if (i==1) {//关闭手电筒barcodeScannerView.setTorchOff();i=0;}}});
相关文章:
Android手电筒、闪光灯、torch、flash
1. 仅开启手电筒 单纯的开启手电筒我们可以使用CameraManager的.setTorchMode()方法。 cameraCharacteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)获取该相机特征是否可获取闪光灯。 CameraManager cameraManager (CameraManager) getSystemService(CAMERA_SE…...
C语言--每日选择题--Day26
第一题 1.在C语言中,表示一次性地给数组a的10元素赋值() int a[10];scanf("%d",a); A:正确 B:错误 答案及解析 B 我们知道单独的数组名就是首元素地址,但是也有…...
[ACTF2020 新生赛]BackupFile
打开题目就一句话:尝试找到源文件 和上一题一样,用dirsearch扫描网站找到了一下内容 flag.php,0B,虚假flag 瞅一眼index.php.bak是啥 下载了一个文件,把bak后缀删掉,打开了index.php源码 is_numeric()&am…...
WPF面试题:WPF绘图技术介绍
作者:令狐掌门 技术交流QQ群:675120140 csdn博客:https://mingshiqiang.blog.csdn.net/ 文章目录 WPF绘图基本用法绘制直线在XAML中绘制直线在C#代码中绘制直线使用Path绘制直线注意矩形绘制在XAML中绘制矩形在C#代码中绘制矩形设置矩形的位置使用圆角矩形画刷1. SolidColor…...
三、Lua变量
文章目录 一、变量分类二、变量赋值三、索引 一、变量分类 lua变量分为全局变量,局部变量。 全局变量:默认,全局有效。 局部变量:从作用范围开始到作用范围结束,需加local 修饰。 a1function ff()local b1 endprint(a…...
C#每天复习一个重要小知识day4:枚举的概念/申明/使用
目录 1.枚举的概念: 2.申明枚举和申明枚举变量: 申明枚举语法: 申明枚举变量语法: 1.枚举的概念: 枚举是什么?枚举是一个比较特别的存在,它是一个命名的整形常量的集合,一般用它…...
C++:对象模型和this指针
对象模型: 成员变量和成员函数分开存储 在C中,类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 空对象占用空间: 1字节 C编译器会给每个空对象也分配一个字节空间,是为了区分空对象占内存的位置 每个…...
碳酸氢锂/硫酸锂溶液纯化除钙镁解决方案
碳酸锂是锂电行业阳极生产中的一个重要原材料,主要用于制造钴酸锂、镍酸锂、锰酸锂等电极材料,也用于充电 锂电池中作非水溶液电解质等,具有良好的电化学性能,应用领域还在不断扩大。工业级碳酸锂主含量(Li2CO3&#x…...
消失的数字,旋转数组(leetcode 一题多解)
目录 一、消失的数字 思路一(暴力求解)代码实现: 思路二(数列的思想)代码实现: 思路三(异或的运用)代码实现: 二、轮转数组 思路一(暴力求解)…...
肠道菌群16s检测粪便采样工具包 粪便采样套装
肠道菌群16s检测是一种常见的分子生物学技术,用于研究人体肠道中的微生物群落。该技术通过分析16s rRNA基因序列,可以快速、准确地鉴定并定量不同种类的肠道微生物。 肠道菌群16s检测通常通过采集粪便样本进行分析。在实验室中,通过提取微生物…...
实现领域驱动设计-07-领域服务
领域中的服务表示一个无状态的操作,它用于实现特定于某个领域的任务。当某个操作不适合放在聚合和值对象上时,为了避免过程式的编程方式,最好的方式便是使用领域服务来实现该操作。 什么是领域服务? 当领域中的某个操作过程或转换过程不是实…...
井盖位移传感器厂家批发,守护井盖安全
窨井盖广泛分布于城市街道,其管理效果直接反映了城市治理的现代化程度。根据住房和城乡建设部发布的《关于进一步加强城市窨井盖安全管理的通知》,全国各地需加强窨井盖的安全管理。作为市政基础设施的一个重要的组成部分,井盖的管理工作不仅…...
python命令行交互 引导用户选择宠物
字多不看,直接体验 代码 以下代码将在命令行中,引导用户选择一个或者多个宠物,并反馈用户选择的宠物 # -*- coding:UTF-8 -*- """ author: dyy contact: douyaoyuan126.com time: 2023/11/22 15:19 file: 在命令行中引导用户…...
Leetcode—167.两数之和 II - 输入有序数组【中等】
2023每日刷题(四十一) Leetcode—167.两数之和 II - 输入有序数组 实现代码 /*** Note: The returned array must be malloced, assume caller calls free().*/ int* twoSum(int* numbers, int numbersSize, int target, int* returnSize) {*returnSiz…...
MybatisPlus改造逻辑删除有多方便
MybatisPlus的逻辑删除可以有效保留历史数据。之前没有用逻辑删除的项目,想改造成逻辑删除总共需要几步? 答案:4步搞定 一、修改pom.xml的MybatisPlus版本(注意版本兼容性) <properties>...<!--<mybatis-…...
希尔伯特变换-matlab仿真
希尔伯特变换(hilbert transform)简介 在信号处理中我们常见的有傅里叶变换,用来分析频域信息,还有拉普拉斯变换和z变换,用于系统分析系统响应。短时傅里叶分析和小波分析用于时频分析。希尔伯特变换似乎听到的比较少。我因为最近在做信号幅度提取的时候看到可以用希尔伯…...
python字典的基本操作详解
Python字典是一种数据结构,它存储的是键值对(key-value pair)。在Python中,字典用于存储和组织数据,并且提供了快速查找和访问数据的方法。 以下是一些Python字典的基本操作: 创建字典: # 创…...
[ CSS ] 内容超出容器后 以...省略
内容超出容器后 以…省略 当前效果 代码 <template><div class"box">有志者,事竟成,破釜沉舟,百二秦关终属楚; 有心人,天不负,卧薪尝胆,三千越甲可吞吴</div> </templa…...
Java远程连接本地开源分布式搜索引擎ElasticSearch
文章目录 前言1. Windows 安装 Cpolar2. 创建Elasticsearch公网连接地址3. 远程连接Elasticsearch4. 设置固定二级子域名 前言 简单几步,结合Cpolar内网穿透工具实现Java远程连接操作本地Elasticsearch。 什么是elasticsearch?一个开源的分布式搜索引擎࿰…...
递归回溯剪枝-子集
LCR 079. 子集 - 力扣(LeetCode) 方法一 1. 决策树:对于决策树,思考的角度不同,画出的决策树也会不同,这道题可以从两个角度来画决策树。 2. 考虑全局变量的使用: 使用全局变量 List<List&…...
「码动四季·开源同行」python语言:用户交互
一、编程入门 1.编程的概念 我们学习一门编程语言需要先了解清楚,什么是编程,为什么要编程,最后才学习怎么编程。计算机的发明就是为了用机器取代人力,来帮助人类进行无休正的工作,还不给他工资,这就是编程…...
瑞芯微RGA接口避坑指南:wrapbuffer_virtualaddr使用中的三个常见错误与修复
瑞芯微RGA接口深度避坑:wrapbuffer_virtualaddr高频问题实战解析 第一次接触瑞芯微RGA加速库的开发者,往往会在官方Demo顺利运行后信心满满地开始项目集成,却在wrapbuffer_virtualaddr接口处遭遇各种诡异崩溃——内存泄漏、花屏、段错误接踵而…...
非科班生如何用Trae IDE在数学建模比赛中逆袭?Python实战经验分享
非科班生如何用Trae IDE在数学建模比赛中逆袭?Python实战经验分享 数学建模比赛向来是跨学科竞技的舞台,但编程这道门槛让不少非计算机专业的学生望而却步。去年带队参加统计建模大赛时,我们三个经管专业的大一新生就面临这样的困境——团队里…...
绿色机器学习系统综述:(三)算法策略与测量工具
摘要 本文是对发表在《Artificial Intelligence Review》期刊上的论文"A systematic review of Green Machine Learning: practices and challenges for sustainability"的文献精读第三篇。该论文由Samara Santos、Andr L. C. Ottoni、Rita Borgo、Danton Ferreira和…...
3分钟魔法:让Navicat Premium试用期无限续杯的神奇脚本
3分钟魔法:让Navicat Premium试用期无限续杯的神奇脚本 【免费下载链接】navicat-premium-reset-trial Reset macOS Navicat Premium 15/16/17 app remaining trial days 项目地址: https://gitcode.com/gh_mirrors/na/navicat-premium-reset-trial 你是否曾…...
Snap.Hutao:为原神玩家量身打造的开源桌面工具箱
Snap.Hutao:为原神玩家量身打造的开源桌面工具箱 【免费下载链接】Snap.Hutao 实用的开源多功能原神工具箱 🧰 / Multifunctional Open-Source Genshin Impact Toolkit 🧰 项目地址: https://gitcode.com/GitHub_Trending/sn/Snap.Hutao …...
OpenCV实战:用HoughLinesP函数5分钟搞定车道线检测(Python代码保姆级教程)
OpenCV实战:用HoughLinesP函数5分钟搞定车道线检测(Python代码保姆级教程) 车道线检测是自动驾驶和辅助驾驶系统的核心技术之一。想象一下,当你驾驶车辆行驶在高速公路上,系统需要实时识别车道线以确保车辆保持在正确的…...
Dockerfile实战:从零构建轻量级JDK1.8运行环境
1. 为什么需要轻量级JDK1.8运行环境? 在Java开发中,JDK1.8因其稳定性和丰富的特性集,至今仍是许多企业项目的首选版本。但传统的JDK安装方式存在几个痛点:首先是环境配置复杂,需要手动设置JAVA_HOME等环境变量&#x…...
Ollama服务调优指南:如何为你的微调Qwen模型分配GPU、内存和设置保活
Ollama生产环境调优实战:GPU分配、内存管理与服务保活全解析 当你在本地服务器或云端实例部署好Qwen微调模型后,真正的挑战才刚刚开始。我曾亲眼见过一家创业公司因为不当的GPU分配策略,导致价值数十万的A100显卡有一半时间处于闲置状态&…...
APK Installer:在Windows上轻松管理Android应用的智能助手
APK Installer:在Windows上轻松管理Android应用的智能助手 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer APK Installer是一款专为Windows系统设计的Andro…...
