文章来源:http://www.imtr.cn/html/n255.html
注意闪光灯不亮的情况,是需要摄像头权限。打包时要配好权限,并且用户使用时需要给予权限。
只有在真机运行才能起作用哦
引入Dcloud的js和css(右键保存到本地)mui.min.css mui.min.js
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <title>测试闪光灯</title> <link rel="stylesheet" href="http://www.dedecmsok.com/style/Dcloud/mui.min.css" /> <script type="text/javascript" src="http://www.dedecmsok.com/style/Dcloud/mui.min.js"></script> <style type="text/css"> p { width: 100%; height: 60px; line-height: 60px; text-align: center; border: 1px red solid; } p:active { opacity: .6; } </style> </head> <body> <p id="on">开启闪光灯</p> <p id="off">关闭闪光灯</p> <script> mui.plusReady(function() { try { var mCameraManager = plus.android.importClass('android.hardware.camera2.CameraManager'); var Context = plus.android.importClass('android.content.Context'); var main = plus.android.runtimeMainActivity(); mCameraManager = main.getSystemService(Context.CAMERA_SERVICE); var ids = mCameraManager.getCameraIdList(); var CameraCharacteristics = plus.android.importClass('android.hardware.camera2.CameraCharacteristics'); on.addEventListener('tap', function() { for (var i = 0; i < ids.length; i++) { var c = mCameraManager.getCameraCharacteristics(ids[i]); var flashAvailable = c.get(CameraCharacteristics.FLASH_INFO_AVAILABLE); var lensFacing = c.get(CameraCharacteristics.LENS_FACING); if (flashAvailable != null && flashAvailable && lensFacing != null && lensFacing == CameraCharacteristics.LENS_FACING_BACK) { //打开或关闭手电筒 mCameraManager.setTorchMode(ids[i], true); } } }); off.addEventListener('tap', function() { for (var i = 0; i < ids.length; i++) { var c = mCameraManager.getCameraCharacteristics(ids[i]); var flashAvailable = c.get(CameraCharacteristics.FLASH_INFO_AVAILABLE); var lensFacing = c.get(CameraCharacteristics.LENS_FACING); if (flashAvailable != null && flashAvailable && lensFacing != null && lensFacing == CameraCharacteristics.LENS_FACING_BACK) { //打开或关闭手电筒 mCameraManager.setTorchMode(ids[i], false); } } }); } catch (e) { } }); </script> </body> </html>
ios设备用下面的代码
function turnonLight(isOn) { if(plus.os.name == "iOS") { var avcaptClass = plus.ios.importClass("AVCaptureDevice"); if(avcaptClass) { var device = avcaptClass.defaultDeviceWithMediaType("vide"); plus.ios.invoke(device, "lockForConfiguration:", null); if(isOn) { plus.ios.invoke(device, "setTorchMode:", 1); plus.ios.invoke(device, "setFlashMode:", 1); } else { plus.ios.invoke(device, "setTorchMode:", 0); plus.ios.invoke(device, "setFlashMode:", 0); } plus.ios.invoke(device, "unlockForConfiguration"); } } };
原文地址:http://www.imtr.cn/html/n255.html