调用本地摄像头并通过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 ...
随机推荐
- css---3链接伪类与动态伪类
链接伪类link:表示作为超链接,并指向一个未访问的地址的所有锚 链接伪类不可以加在div上 <!DOCTYPE html> <html> <head> <m ...
- crontab[计划任务],tar[压缩],grep[查找]
计划任务:1.新建一个计划任务:crontab -e -----> 3*/1 * * * * date >> /tmp/data.txt查看计划任务:crontab -l.如果超过6 ...
- CF1097E Egor and an RPG game
最少反链划分数 = 最长链.实现:每次找出所有极大元作为一个反链. 任意长度小于k * (k + 1) / 2的排列都能被划分为不多于k个单调序列.且这是一个紧的上界. 然后这题就可以切了. 题意:给 ...
- Mysql引擎MyISAM和InnoDB的区别
InnoDB的数据存储在表空间中,表空间是由InnoDB管理的一个黑盒子,由一系列的数据文件组成.InnoDB可以将每个表的数据和索引存放在单独的文件中. InnoDB采用MVCC来支持高并发,并且实 ...
- System.Web.Mvc.FileContentResult.cs
ylbtech-System.Web.Mvc.FileContentResult.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neutral, ...
- 移动端开发框架Zepto.js
一.概述 Zepto.js是一个轻量的js库,它与jQuery有类似的API. zepto的设计目的是不到10K的通用库,快速下载,有一个熟悉的api-->精力专注在开发上. 流行起来的原因:轻 ...
- 从xmlns的作用说起
查了资料和自己实践后,得出了一些关于xml和xmlns的结论 看一个最常见的javaweb 中xml配置文件的开头: <?xml version="1.0" encoding ...
- C#去掉字符串两端空格以及去掉字符串中多余空格保留一个空格
string str = " asdf asd saddf sdfwrqeqw a asdf "; string[] strs = str.Trim().Split(new cha ...
- Shield 安装与配置
Shield 安装与配置 https://www.elastic.co/guide/en/shield/shield-1.3/introduction.html 一.简介 Shield是Elas ...
- mybatis使用Example进行条件查询
参考: https://www.cnblogs.com/zhemeban/p/7183061.html Example类是什么? Example类指定如何构建一个动态的where子句. 表中的每个no ...