摄像头调用,h5调用摄像头进行扫一扫插件备份
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <video id="video" width="640" height="480" autoplay></video> </body> <script type="text/javascript"> var promisifiedOldGUM = function(constraints) { // 第一个拿到getUserMedia,如果存在 var getUserMedia = (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia); // 有些浏览器只是不实现它-返回一个不被拒绝的承诺与一个错误保持一致的接口 if (!getUserMedia) { return Promise.reject(new Error('getUserMedia is not implemented in this browser-getUserMedia是不是在这个浏览器实现')); } // 否则,调用包在一个旧navigator.getusermedia承诺 return new Promise(function(resolve, reject) { getUserMedia.call(navigator, constraints, resolve, reject); }); } // 旧的浏览器可能无法实现mediadevices可言,所以我们设置一个空的对象第一 if (navigator.mediaDevices === undefined) { navigator.mediaDevices = {}; } // 一些浏览器部分实现mediadevices。我们不能只指定一个对象 // 随着它将覆盖现有的性能getUserMedia。. // 在这里,我们就要错过添加getUserMedia财产。. if (navigator.mediaDevices.getUserMedia === undefined) { navigator.mediaDevices.getUserMedia = promisifiedOldGUM; } // Prefer camera resolution nearest to 1280x720. var constraints = { audio: true, video: { width: 1280, height: 720 } }; navigator.mediaDevices.getUserMedia(constraints) .then(function(stream) { var video = document.querySelector('video'); video.src = window.URL.createObjectURL(stream); video.onloadedmetadata = function(e) { video.play(); }; }).catch(function(err) { console.log(err.name + ": " + err.message); }); </script> </html>
可用调用摄像头
通过
catch(function(err) { console.log(err.name + ": " + err.message); });可用判断是否有可使用的摄像头但是错误信息有限无法详细判断
NavigatorUserMediaError {name: "DevicesNotFoundError", message: "", constraintName: ""} constraintName:"" message:"" name:"DevicesNotFoundError"
目前没时间详细查看先记录下来以后看
参考:http://blog.csdn.net/qq_16559905/article/details/51743588
https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices/getUserMedia
下面是H5调用摄像头进行扫一扫的功能,https://github.com/zhiqiang21/WebComponent(开发者所有的插件)
https://github.com/zhiqiang21/WebComponent/tree/master/html5-Qrcode(扫一扫功能)
http://www.cnblogs.com/yisuowushinian/p/5145262.html
亲测有效,但是兼容性不是很好
实现是调用拍照或者调用相册获取到二维码图片,用jsqrcode进行二维码分析 地址
然后获取到实际的二维码内写的字符串
后续实现自行可以处理