jquery 访问手机摄像头_Android手机摄像头闪光灯编程(做个小手电)
对于手机闪光灯,不同的设备会有一些区别。
三星特别喜欢为APP开发者搞点复杂的东西,在Galaxy Tab平板中,你应该这样:
Camera cam;
void ledon() {
cam = Camera.open();
Parameters params = cam.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_ON);
cam.setParameters(params);
cam.startPreview();
cam.autoFocus(new AutoFocusCallback() {
public void onAutoFocus(boolean success, Camera camera) {
}
});
}
void ledoff() {
cam.stopPreview();
cam.release();
}
如果这不起作用,可能是在startPreview之后进行FLASH_MODE_OFF初始化设置的问题。
我通过下面的方法,使其可以在多种手机上工作:
String manuName = android.os.Build.MANUFACTURER.toLowerCase();
Camera mCamera;
下面的代码演示了,如何打开和关闭灯光:
private void processOnClick() {
if (manuName.contains("motorola")) {
DroidLED led;
try {
led = new DroidLED();
led.enable(true);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
if (mCamera == null) {
try {
mCamera = Camera.open();
} catch (Exception e) {
e.printStackTrace();
}
}
if (mCamera != null) {
final Parameters params = mCamera.getParameters();
List flashModes = params.getSupportedFlashModes();
if (flashModes == null) {
return;
} else {
if (count == 0) {
params.setFlashMode(Parameters.FLASH_MODE_OFF);
mCamera.setParameters(params);
mCamera.startPreview();
}
String flashMode = params.getFlashMode();
if (!Parameters.FLASH_MODE_TORCH.equals(flashMode)) {
if (flashModes.contains(Parameters.FLASH_MODE_TORCH)) {
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(params);
} else {
// Toast.makeText(this,
// "Flash mode (torch) not supported",Toast.LENGTH_LONG).show();
params.setFlashMode(Parameters.FLASH_MODE_ON);
mCamera.setParameters(params);
try {
mCamera.autoFocus(new AutoFocusCallback() {
public void onAutoFocus(boolean success, Camera camera) {
count = 1;
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
}
if (mCamera == null) {
return;
}
}
private void processOffClick() {
if (manuName.contains("motorola")) {
DroidLED led;
try {
led = new DroidLED();
led.enable(false);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
if (mCamera != null) {
count = 0;
mCamera.stopPreview();
}
}
}
下面是 DroidLED 类:
class DroidLED {
private Object svc = null;
private Method getFlashlightEnabled = null;
private Method setFlashlightEnabled = null;
@SuppressWarnings("unchecked")
public DroidLED() throws Exception {
try {
// call ServiceManager.getService("hardware") to get an IBinder for the service.
// this appears to be totally undocumented and not exposed in the SDK whatsoever.
Class sm = Class.forName("android.os.ServiceManager");
Object hwBinder = sm.getMethod("getService", String.class).invoke(null, "hardware");
// get the hardware service stub. this seems to just get us one step closer to the proxy
Class hwsstub = Class.forName("android.os.IHardwareService$Stub");
Method asInterface = hwsstub.getMethod("asInterface", android.os.IBinder.class);
svc = asInterface.invoke(null, (IBinder) hwBinder);
// grab the class (android.os.IHardwareService$Stub$Proxy) so we can reflect on its methods
Class proxy = svc.getClass();
// save methods
getFlashlightEnabled = proxy.getMethod("getFlashlightEnabled");
setFlashlightEnabled = proxy.getMethod("setFlashlightEnabled", boolean.class);
}
catch(Exception e) {
throw new Exception("LED could not be initialized");
}
}
public boolean isEnabled() {
try {
return getFlashlightEnabled.invoke(svc).equals(true);
}
catch(Exception e) {
return false;
}
}
public void enable(boolean tf) {
try {
setFlashlightEnabled.invoke(svc, tf);
}
catch(Exception e) {}
}
}
在AndroidManifest.xml中必须设置下列权限:
jquery 访问手机摄像头_Android手机摄像头闪光灯编程(做个小手电)相关推荐
- java手机解锁_Android手机屏幕敲击解锁功能代码
1.前言 现在市面上有不少Android手机支持敲击屏幕解锁,敲击屏幕解锁是一项很实用的功能,但一来只支持敲击屏幕,二来只能用于解锁或锁屏,再者我们应用层的开发者切不进去,完全无法玩起来.开发者,开发 ...
- vue3+jsQr实现手机浏览器调用本地摄像头扫描并识别二维码
最近做的项目有个需求是在手机端打开页面,登录之后能在手机上扫描二维码并根据扫描的结果去查询班级情况.别的功能就不说了,移动端扫描二维码这个以前没做过,所以在这里记录一下. 项目用到的技术栈: Vue ...
- 测试:将手机摄像头用作网络摄像头的拍摄效果
我在手机上测试了一些虚拟网络摄像头软件. 作者 / Chris Kranky 原文链接 / https://www.chriskranky.com/using-your-mobile-camera-a ...
- 为什么现在的手机用4个摄像头?越来越难看。就不能只用一个摄像头吗?
手机上的每颗摄像头都有其相应的作用,日常拍拍风景.食物.二维码之类的,一颗普通的主摄足矣,但对于手机拍摄的功能性和可玩性上来看,手机使用3颗.4颗甚至5颗摄像头还是很有必要的. 举个例子 拿华为手机为 ...
- 【JS】【19】使用Jquery判断是电脑或手机或微信浏览器访问
正文: //检测平台 var p = navigator.platform;system.win = p.indexOf("Win") == 0;system.mac = p.in ...
- 电脑用摄像头 质量不错的几个型号 旧手机接电脑当摄像头 iriun webcam
旧手机接电脑当摄像头 iriun webcam 罗技 c920 c930 CRIO 小黄鱼 800左右 4k 带美颜功能,据说很多主播用 宝利通 polycom 亿联 海康威视 参考 https:// ...
- 手机访问电脑文件_手机直接访问电脑文件,不用数据线,方便快速
手机和电脑之间文件的交互办法有很多种,最简单的就是用数据线来进行文件的传输,或者用其它软件来实现文件面对面的交流.不过这些方法都有一些使用上的限制,不太方便.关注公众号 三角架创业支撑 获取更多资讯 ...
- 怎么制作手机网站?如何建一个wap手机网站?所谓手机网站指手机能访问的网站,现在手机浏览器对html...
所谓手机网站指手机能访问的网站,现在手机浏览器对html5支持了,打开电脑站是没问题的,但体验就不咋的了.随着网站建设的发展,对于网站建设形式上有了很大的变化和创新,从根据不同行业如企业.集团.门户. ...
- 蚂蚁分类信息系统PC手机网址自适应,网页自适应移动端及根据访问设备自动识别展示手机站或PC站
蚂蚁分类信息系统PC手机网址自适应,网页自适应移动端及根据访问设备自动识别展示手机站或PC站 本实现方法仅适用于nginx环境,主要是使用 Nginx 内置 $http_user_agent 变量来区 ...
最新文章
- 【原创】新手入门一篇就够:从零开发移动端IM
- OpenCV:使用git和cmake安装Tesserac
- SAP Cloud Platform创建Destination时Additional properties属性的维护
- C语言 | 函数执行成功时,return 1 还是return 0?
- 早上起来CSDN的PC端主页积分变成了0
- 【JEECG Dubbo专题】jeecg-p3集成dubbo文档
- 三级菜单 ajax 已经测试成功
- Anchor-free新思路,统一目标检测、实例分割、姿态估计三种任务
- 可以多次使用同一个hbitmap吗_求婚钻戒和结婚钻戒可以是同一个吗?意义戴法各不同,别胡乱混淆...
- C代码编译过程,cmakelist基础步骤
- python3.8安装pygame_Python3.8安装Pygame很难?新萌也能轻松搞定安装并运行游戏
- CANOE使用八:自动化测试OSEK网络管理(创建TestModule-搭配Panel界面及使用Capl识别配置文件TXT的自动化测试流程)
- 硬件安全模块- HSM
- 计算机英语解读,解释计算机Windows的学习英语
- 使用CSS绘制一个平行四边形
- 计算机组装要哪些硬件,电脑配件,小编教你电脑组装需要哪些配件
- 如何提高电商广告投放的转化率?
- 简单数据类型的转换和条件控制语句(if else)的使用
- php 8bit 10bit 解码,求助:我想把10bit的MKV压制成8bitMP4
- ubuntu 18.04+GTX30系列显卡+TensorFlow-gpu1.15
热门文章
- 风力发电系统全国产化电子元件推荐方案
- typescript往window挂载属性
- Ubuntu16.04下多版本pip共存
- 独角兽迎来上市高潮,Pinterest是下一个Lyft还是instagram?
- 为啥加了时分秒就不能解析了呢?
- 关于WiFi DFS和WiFi自适应的介绍
- 数字信号处理(DTFT与DFT、DFS的详细讲解以及FFT算法)
- 名词理解| Identifiability可识别性
- 小鼠植入前胚胎的可接近染色质图谱
- 河北对口计算机专科学校排名及分数线,高考志愿填报 2017-2018河北专科学校排名及分数线...