js调用网络摄像头的方法
网络编程 2021-07-04 14:07www.168986.cn编程入门
这篇文章主要介绍了js调用网络摄像头的方法,帮助大家更好的理解和使用JavaScript,感兴趣的朋友可以了解下
不支持IE浏览器(需要使用flash插件), 支持移动端, 未经过完全测试
PC端使用的时候, HTML页面需要预留video标签, canvas标签
移动端使用的时候, HTML页面需要预留file标签, canvas标签, img标签
(function (window, document) { window.camera = { init: function (options) { / options 属性示例 videoID: video控件ID canvasID: canvas控件ID fileID: type为file的input控件的ID imageID: img控件的ID videoEnable: 是否启用摄像头 audioEnable: 是否启用麦克风 videoWidth: 视频宽度 videoHeight: 视频高度 photoWidth: 拍照宽度 photoHeight: 拍照高度 / _options = options; if (isMobileTerminal()) { initMobileTerminal(); } else { initComputerTerminal(); } }, photo: function () { if (isMobileTerminal()) { photoMobileTerminal(); } else { photoComputerTerminal(); } } }; let _options = null; function initComputerTerminal() { let videoDom = document.getElementById(_options.videoID); if (!videoDom) { alert('Video 控件无效'); return; } let canvasDom = document.getElementById(_options.canvasID); if (!canvasDom) { alert('Canvas 控件无效'); return; } canvasDom.setAttribute('width', _options.photoWidth + 'px'); canvasDom.setAttribute('height', _options.photoHeight + 'px'); let parameters = { video: _options.videoEnable ? { width: _options.videoWidth, height: _options.videoHeight } : false, audio: _options.audioEnable }; navigator.mediaDevices.getUserMedia(parameters) .then(function (MediaStream) { video.srcObject = MediaStream; video.play(); }).catch(function (reason) { console.log(reason); alert(reason); }); } function photoComputerTerminal() { let videoDom = document.getElementById(_options.videoID); if (!videoDom) { alert('Video 控件无效'); return; } let canvasDom = document.getElementById(_options.canvasID); if (!canvasDom) { alert('Canvas 控件无效'); return; } let context = canvasDom.getContext('2d'); context.drawImage(videoDom, 0, 0, _options.photoWidth, _options.photoHeight); } function initMobileTerminal() { let fileDom = document.getElementById(_options.fileID); if (!fileDom) { alert('File 控件无效'); return; } fileDom.setAttribute('aept', 'image/'); fileDom.setAttribute('capture', 'camera'); let canvasDom = document.getElementById(_options.canvasID); if (!canvasDom) { alert('Canvas 控件无效'); return; } canvasDom.setAttribute('width', _options.photoWidth + 'px'); canvasDom.setAttribute('height', _options.photoHeight + 'px'); let imageDom = document.getElementById(_options.imageID); if (!imageDom) { alert('Image 控件无效'); return; } fileDom.addEventListener('change', function () { let file = fileDom.files[0]; let reader = new FileReader(); reader.onloadend = function () { imageDom.setAttribute('src', reader.result); setTimeout(function () { let context = canvas.getContext("2d"); context.drawImage(imageDom, 0, 0, _options.photoWidth, _options.photoHeight); }, 300); }; reader.readAsDataURL(file); }); } function photoMobileTerminal() { let fileDom = document.getElementById(_options.fileID); fileDom.click(); } function isMobileTerminal() { if (/AppleWebKit.Mobile/i.test(navigator.userAgent) || /Mobile/.test(navigator.userAgent) || /MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent)) return /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent); return false; } })(window, document);
以上就是js调用网络摄像头的方法的详细内容,更多关于js调用网络摄像头的资料请关注狼蚁SEO其它相关文章!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程