JS实现调用本地摄像头功能示例


Posted in Javascript onMay 18, 2018

本文实例讲述了JS实现调用本地摄像头功能。分享给大家供大家参考,具体如下:

今天学习了一下js调用本地摄像头,其实是实现不是很麻烦,下面是代码部分,连接上Tomcat服务器,然后再到网页上打开即可以看到效果了。。快来玩一下吧!

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<style>
video {
 border: 1px solid #ccc;
 display: block;
 margin: 0 0 20px 0;
 float:left;
}
canvas {
 margin-top: 20px;
 border: 1px solid #ccc;
 display: block;
}
</style>
</head>
<body>
<video width="640" height="480" id="myVideo"></video>
<canvas width="640" height="480" id="myCanvas"></canvas>
<button id="myButton">截图</button>
<button id="myButton2">预览</button>
<button id="myButton3">
<a download="video.png">另存为</a>
</button>
</body>
<script>
window.addEventListener('DOMContentLoaded',function(){
var cobj=document.getElementById('myCanvas').getContext('2d');
var vobj=document.getElementById('myVideo');
getUserMedia({video:true},function(stream){
vobj.src=stream;
vobj.play();
},function(){});
document.getElementById('myButton').addEventListener('click',function(){
cobj.drawImage(vobj,0,0,640,480);
document.getElementById('myButton3').children[0].href=cobj.canvas.toDataURL("image/png");
},false);
document.getElementById('myButton2').addEventListener('click',function(){
window.open(cobj.canvas.toDataURL("image/png"),'_blank');
},false);
},false);
function getUserMedia(obj,success,error){
if(navigator.getUserMedia){
getUserMedia=function(obj,success,error){
navigator.getUserMedia(obj,function(stream){
success(stream);
},error);
}
}else if(navigator.webkitGetUserMedia){
getUserMedia=function(obj,success,error){
navigator.webkitGetUserMedia(obj,function(stream){
var _URL=window.URL || window.webkitURL;
success(_URL.createObjectURL(stream));
},error);
}
}else if(navigator.mozGetUserMedia){
getUserMedia=function(obj,success,error){
navigator.mozGetUserMedia(obj,function(stream){
success(window.URL.createObjectURL(stream));
},error);
}
}else{
return false;
}
return getUserMedia(obj,success,error);
}
</script>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jQuery 创建Dom元素
May 07 Javascript
JS面向对象编程之对象使用分析
Aug 19 Javascript
js和as的稳定传值问题解决
Jul 14 Javascript
快速掌握Node.js事件驱动模型
Mar 21 Javascript
深入理解js函数的作用域与this指向
May 28 Javascript
Node.js的环境安装配置(使用nvm方式)
Oct 11 Javascript
bootstarp modal框居中显示的实现代码
Feb 18 Javascript
VueJs 搭建Axios接口请求工具
Nov 20 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
Apr 12 Javascript
eslint+prettier统一代码风格的实现方法
Jul 22 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
Nov 09 Javascript
微信小程序实现购物车小功能
Dec 30 Javascript
React全家桶环境搭建过程详解
May 18 #Javascript
vue单页开发父子组件传值思路详解
May 18 #Javascript
Node.js Buffer用法解读
May 18 #Javascript
从零开始搭建webpack+react开发环境的详细步骤
May 18 #Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
May 18 #Javascript
webpack4 css打包压缩问题的解决
May 18 #Javascript
微信小程序实现长按删除图片的示例
May 18 #Javascript
You might like
php/js获取客户端mac地址的实现代码
2013/07/08 PHP
深入Nginx + PHP 缓存详解
2013/07/11 PHP
基于PHP的简单采集数据入库程序【续篇】
2014/07/30 PHP
PHP编写文件多服务器同步程序
2016/07/02 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
2016/07/13 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
Mootools 1.2教程 定时器和哈希简介
2009/09/15 Javascript
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
Javascript实现返回上一页面并刷新的小例子
2013/12/11 Javascript
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
学习javascript面向对象 理解javascript原型和原型链
2016/01/04 Javascript
java中String类型变量的赋值问题介绍
2016/03/23 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
AngularJS实现路由实例
2017/02/12 Javascript
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
node.js中事件触发器events的使用方法实例分析
2019/11/23 Javascript
NodeJS实现一个聊天室功能
2019/11/25 NodeJs
vue-property-decorator用法详解
2019/12/12 Javascript
微信小程序实现弹框效果
2020/05/26 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
详解vue中v-model和v-bind绑定数据的异同
2020/08/10 Javascript
python模拟登录并且保持cookie的方法详解
2017/04/04 Python
python @property的用法及含义全面解析
2018/02/01 Python
浅谈Python中threading join和setDaemon用法及区别说明
2020/05/02 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
Python是怎样处理json模块的
2020/07/16 Python
Python压缩模块zipfile实现原理及用法解析
2020/08/14 Python
利用css3实现的简单的鼠标悬停按钮
2014/11/04 HTML / CSS
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
西班牙Polo衫品牌:Polo Club
2020/08/09 全球购物
领导的自我鉴定
2013/12/28 职场文书
2015秋季小学开学寄语
2015/05/27 职场文书
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL