调用本地摄像头并通过canvas拍照
首先我们需要新建一个video标签,并且放到html里边
var video = document.createElement("video");
video.autoplay="autoplay";
document.body.appendChild(video);
利用navigator对象
navigator.mediaDevices.getUserMedia({
audio:true,
video:true
})
这样就调用了摄像头和录音器
navigator.mediaDevices.getUserMedia({
audio: false, video: true
}).then(function (result) {
video.srcObject = result;
})
利用video的srcObject属性和promise的then方法,把开启摄像头后的返回值给video标签,就显示出来了
全部的实现代码如下:
var video = document.createElement("video");
video.autoplay="autoplay";
document.body.appendChild(video);
navigator.mediaDevices.getUserMedia({
audio: false, video: true
}).then(function (result) {
video.srcObject = result;
})
现在我们继续写canvas拍照的步骤
<video id='myVideo' hidden></video>
<canvas id='snap' width='' height='' style="border:1px solid #ccc"></canvas>
<button id='control'>拍照</button>
<script>
var snap = document.getElementById('snap');
var context = snap.getContext('2d');
var videoSrc = null;
navigator.mediaDevices.getUserMedia({
audio: false, video: true
}).then(function (result) {
videoSrc = result;
console.log(videoSrc)
myVideo.srcObject = videoSrc;
})
control.addEventListener('click',function(){
context.drawImage(myVideo,,,,);
console.log(navigator.mediaDevices)
})
</script>
新建canvas画布,获得context
隐藏video
canvas.drawImage方法的第一个参数放video即可调用canvas拍照
调用本地摄像头并通过canvas拍照的更多相关文章
- H5实现调用本地摄像头实现实时视频以及拍照功能
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 调用本地摄像头拍照(H5和画布)
关于H5 和 画布 调用本地摄像头拍照功能的实现 1.代码的实现(html部分) <input type="button" title="开启摄像头" v ...
- 利用html5调用本地摄像头拍照上传图片[转]
利用html5调用本地摄像头拍照上传图片 html5概念啥的就不废话了,不知道的 百度, 谷歌一堆..今天学了学html5中的Canvas结合新增的<video>标签来获取本地摄像头, ...
- H5混合开发二维码扫描以及调用本地摄像头
今天主管给了我个需求,说要用混合开发,用H5调用本地摄像头进行扫描二维码,我之前有做过原生安卓的二维码扫一扫,主要是通过调用zxing插件进行操作的,其中还弄了个闪光灯.但是纯H5的没接触过,心里没底 ...
- HTML5调用本地摄像头画面,拍照,上传服务器
实现功能和适用业务 采集本地摄像头获取摄像头画面,拍照保存,上传服务器: 前端上传图片处理,展示,缩小,裁剪,上传服务器 实现步骤 调取本地摄像头(getUserMedia)/上传图片,将图片/视频显 ...
- 前端调用本地摄像头实现拍照(vue)
由于调用摄像头有使用权限,只能在本地运行,线上需用https域名才可以使用. <template> <div class="camera_outer"> & ...
- 利用html5调用本地摄像头拍照上传图片
这个是前台HTML的代码. <div id="contentHolder"> <video id="video" width="32 ...
- H5调用本地摄像头
<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"& ...
- H5调用本地摄像头[转]
http://www.cnblogs.com/GoodPingGe/p/4726126.html <!DOCTYPE html><html><head lang=&quo ...
随机推荐
- BZOJ1912:[APIO2010]patrol巡逻
Description Input 第一行包含两个整数 n, K(1 ≤ K ≤ 2).接下来 n – 1行,每行两个整数 a, b, 表示村庄a与b之间有一条道路(1 ≤ a, b ≤ n). Ou ...
- $router 跳转
vue用$router跳转有三种方法 this.$router.push.replace.go this.$router.push() 跳转到不同的url,但这个方法回向history栈添加一个记录, ...
- CSS或HTML如何实现文字下面加点?
就像word里文字加着重号一样,在字的下面加一个点,用CSS怎么做?注意,我说的是下面加点,不是文字加粗或倾斜,请不要回答<strong>或<em>之类的. 把要着重加点的文字 ...
- HTML编码的用户输入------阻止向Controller的方法传入参数时用链接注入javascript代码或者HTML标记
- js 面向对象类
类的声明 继承的几种方法 类的声明 第一种 function car(){ this.name = 'name'; } 第二种.es6中新添加的 class car(){ constructor(){ ...
- ElasticSearch入门之彼行我释(四)
散仙在上篇文章中,介绍了关于ElasticSearch基本的增删改查的基本粒子,本篇呢,我们来学下稍微高级一点的知识: (1)如何在ElasticSearch中批量提交索引 ? (2)如何使用高级查询 ...
- Bash 常用快捷方式
从历史中执行命令 ctrl +r 搜索历史命令记录 !$ 重复上一个命令参数 文本编辑的快捷方式 c 分别更改这些配对标点符号中的文本内容 di 分别删除这些配对标点符号中的文本内容 do ...
- [转]WPF中的ControlTemplate(控件模板)
WPF中的ControlTemplate(控件模板) ...
- mysql5.7基于gtid进行搭建主从复制过程
gtid_mode = onenforce-gtid-consistency = onskip_name_resolve # 去掉域名解析二进制日志必须开启,且格式为ROWserver-id必须配置成 ...
- Ubuntu下samba的安装和配置
samba是Linux系统上的一种文件共享协议,可以实现Windows系统访问Linux系统上的共享资源,现在介绍一下如何在Ubuntu 14.04上安装和配置samba一. 一.更新源列表 打开&q ...