html5调用摄像头实例代码


Posted in HTML / CSS onJune 28, 2021

最近在学习在做HTML5的项目,看了博客上html5调用摄像头拍照的文章,但各有瑕疵。于是自己查阅书籍写了一个demo,主要分三步,废话不多说上代码。

HTML代码部分:

<!--video用于显示媒体设备的视频流,自动播放-->   
<video  id="video" autoplay style="width: 480px;height: 320px"></video>
<!--拍照按钮-->
<div>
    <button id="capture">拍照</button>
</div>
<!--描绘video截图-->
<canvas id="canvas" width="480" height="320"></canvas>

接下来是js代码部分:

<script>  
    var video = document.getElementById('video');
    var canvas = document.getElementById('canvas');
    var capture = document.getElementById('capture');
    var context = canvas.getContext('2d');
    function getUserMediaToPhoto(constraints,success,error) {
        if(navigator.mediaDevices.getUserMedia){
            //最新标准API
            navigator.mediaDevices.getUserMedia(constraints).then(success).catch(error);
        }else if (navigator.webkitGetUserMedia) {
            //webkit核心浏览器
            navigator.webkitGetUserMedia(constraints,success,error);
        }else if(navigator.mozGetUserMedia){
            //firefox浏览器
            navigator.mozGetUserMedia(constraints,success,error);
        }else if(navigator.getUserMedia){
            //旧版API
            navigator.getUserMedia(constraints,success,error);
        }
    }
    //成功回调函数
    function success(stream){
        //兼容webkit核心浏览器
        var CompatibleURL = window.URL || window.webkitURL;
        //将视频流转化为video的源
        video.src = CompatibleURL.createObjectURL(stream);
        video.play();//播放视频
    }
    function error(error) {
        console.log('访问用户媒体失败:',error.name,error.message);
    }
    if(navigator.mediaDevices.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.getUserMedia){
        getUserMediaToPhoto({video:{width:480,height:320}},success,error);
    }else{
        alert('你的浏览器不支持访问用户媒体设备');
    }
    capture.addEventListener('click',function() {
        // 将video画面描绘在canvas画布上
        context.drawImage(video,0,0,480,320);
    })
 </script>

值得注意的是:

使用的时候打开摄像头一定要上server上打开,否则没办法使用!因为打开的是属于网络的webcam,需要在server上打开。

目前好像chrome和opera还有大多数移动设备支持HTLM5打开摄像头,我这个是在chrome上测试成功的。

还有一点,如果没成功,很可能是你不小心关闭了chrome打开摄像头的权限,你重新启用权限就可以啦!

到此这篇关于html5调用摄像头实例的文章就介绍到这了,更多相关html5调用摄像头内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
Web前端绘制0.5像素的几种方法
Aug 11 HTML / CSS
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
Apr 03 HTML / CSS
利用CSS3实现文本框的清除按钮相关的一些效果
Jun 23 HTML / CSS
CSS3 RGBA色彩模式使用实例讲解
Apr 26 HTML / CSS
关于css兼容性问题及一些常见问题汇总
May 03 HTML / CSS
css3边框_动力节点Java学院整理
Jul 11 HTML / CSS
css3实现背景动态渐变效果
Dec 10 HTML / CSS
HTML5 b和i标记将被赋予真正的语义
Jul 16 HTML / CSS
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
Apr 25 HTML / CSS
HTML5实现锚点时请使用id取代name
Sep 06 HTML / CSS
html5基础标签(html5视频标签 html5新标签用法)
Dec 30 HTML / CSS
html5 canvas的绘制文本自动换行的示例代码
Sep 17 HTML / CSS
CSS 伪元素::marker详解
深入理解margin塌陷和margin合并的解决方案
CSS实现章节添加自增序号的方法
CSS变量实现主题切换的方法
Jun 23 #HTML / CSS
CSS3实现列表无限滚动/轮播效果
HTML5页面音频自动播放的实现方式
Jun 21 #HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
You might like
法压式咖啡之制作法
2021/03/03 冲泡冲煮
关于更改Zend Studio/Eclipse代码风格主题的介绍
2013/06/23 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
2017/06/19 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
2019/03/30 PHP
javascript与asp.net(c#)互相调用方法
2009/12/13 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
2013/01/23 Javascript
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
深入分析node.js的异步API和其局限性
2016/09/05 Javascript
基于Two.js实现星球环绕动画效果的示例
2017/11/06 Javascript
微信小程序三级联动选择器使用方法
2020/05/19 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
自己动手封装一个React Native多级联动
2018/09/19 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
Python 第一步 hello world
2009/09/25 Python
Python实现设置windows桌面壁纸代码分享
2015/03/28 Python
Python读写Json涉及到中文的处理方法
2016/09/12 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
2016/09/21 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
python 判断一组数据是否符合正态分布
2020/09/23 Python
python 怎样进行内存管理
2020/11/10 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
Roxy俄罗斯官方网站:冲浪和滑雪板的一切
2020/06/20 全球购物
电脑租赁公司创业计划书
2014/01/08 职场文书
手术室护士节演讲稿
2014/08/27 职场文书
导游词开场白
2015/01/31 职场文书
慰问信模板
2015/02/14 职场文书
文化苦旅读书笔记
2015/06/29 职场文书
小学安全教育主题班会
2015/08/12 职场文书
Pytorch distributed 多卡并行载入模型操作
2021/06/05 Python
Python实现归一化算法详情
2022/03/18 Python
python绘制简单直方图(质量分布图)的方法
2022/04/21 Python