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 相关文章推荐
浏览器实现移动端高性能css3动画(开启gpu加速)
Dec 23 HTML / CSS
一款基于css3的动画按钮代码教程
Nov 23 HTML / CSS
利用css3-animation实现逐帧动画效果
Mar 10 HTML / CSS
移动端适配 使px自动转换rem
Aug 26 HTML / CSS
css3针对移动端卡顿问题的解决(动画性能优化)
Feb 14 HTML / CSS
CSS3制作圆形滚动进度条动画的示例
Nov 05 HTML / CSS
微信浏览器左上角返回按钮拦截功能
Nov 21 HTML / CSS
HTML高亮关键字的实现代码
Oct 22 HTML / CSS
html5模拟平抛运动(模拟小球平抛运动过程)
Jul 25 HTML / CSS
HTML table 表格边框的实现思路
Oct 12 HTML / CSS
uniapp+Html5端实现PC端适配
Jul 15 HTML / CSS
CSS基础详解
Oct 16 HTML / CSS
CSS 伪元素::marker详解
深入理解margin塌陷和margin合并的解决方案
CSS实现章节添加自增序号的方法
CSS变量实现主题切换的方法
Jun 23 #HTML / CSS
CSS3实现列表无限滚动/轮播效果
HTML5页面音频自动播放的实现方式
Jun 21 #HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
You might like
syphon 虹吸式咖啡冲泡冲煮倒水的得与失
2021/03/03 冲泡冲煮
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
php adodb连接不同数据库
2009/03/19 PHP
php 调用远程url的六种方法小结
2009/11/02 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
php基本函数汇总
2015/07/09 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
PHP数据库编程之MySQL优化策略概述
2017/08/16 PHP
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
javascript 二分法(数组array)
2010/04/24 Javascript
JS弹出对话框返回值代码(asp.net后台)
2010/12/28 Javascript
html超链接打开窗口大小的方法
2013/03/05 Javascript
jQuery操作cookie
2016/08/08 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
2016/12/05 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
微信小程序实现表单校验功能
2020/03/30 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
Python中逗号的三种作用实例分析
2015/06/08 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
python读取大文件越来越慢的原因与解决
2019/08/08 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
python如何绘制疫情图
2020/09/16 Python
python向企业微信发送文字和图片消息的示例
2020/09/28 Python
html5开发之viewport使用
2013/10/17 HTML / CSS
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
YSL Beauty加拿大官方商城:圣罗兰美妆加拿大
2017/05/15 全球购物
俄罗斯苹果优质经销商商店:iPort
2020/05/27 全球购物
三月学雷锋活动总结
2014/06/26 职场文书
起诉状范本
2015/05/20 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
《工作是最好的修行》读后感3篇
2019/12/13 职场文书
关于MySQL中的 like操作符详情
2021/11/17 MySQL
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android
css让页脚保持在底部位置的四种方案
2022/07/23 HTML / CSS