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实现同时执行倾斜和旋转的动画效果
Oct 27 HTML / CSS
css3给背景图片加颜色遮罩的方法
Nov 05 HTML / CSS
html5-canvas中使用clip抠出一个区域的示例代码
May 25 HTML / CSS
HTML5标签小集
Aug 02 HTML / CSS
html5使用canvas实现跟随光标跳动的火焰效果
Jan 07 HTML / CSS
基于HTML5的齿轮动画特效
Feb 29 HTML / CSS
浅谈HTML5 &amp; CSS3的新交互特性
Jul 19 HTML / CSS
详解canvas多边形(蜘蛛图)的画法示例
Jan 29 HTML / CSS
HTML5离线应用与客户端存储的实现
May 03 HTML / CSS
小程序瀑布流解决左右两边高度差距过大的问题
Feb 20 HTML / CSS
CSS代码检查工具stylelint的使用方法详解
Mar 27 HTML / CSS
HTML基本元素标签介绍
Feb 28 HTML / CSS
CSS 伪元素::marker详解
深入理解margin塌陷和margin合并的解决方案
CSS实现章节添加自增序号的方法
CSS变量实现主题切换的方法
Jun 23 #HTML / CSS
CSS3实现列表无限滚动/轮播效果
HTML5页面音频自动播放的实现方式
Jun 21 #HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
You might like
古巴咖啡 Cubita琥爵咖啡 独特的加勒比海风味咖啡
2021/03/06 新手入门
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
PHP设置Cookie的HTTPONLY属性方法
2017/02/09 PHP
JavaScript使用cookie
2007/02/02 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
js实现人才网站职位选择功能的方法
2015/08/14 Javascript
js获取鼠标位置实例详解
2015/12/09 Javascript
javascript每日必学之多态
2016/02/23 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
jQuery将表单序列化成一个Object对象的实例
2016/11/29 Javascript
javascript checkbox/radio onchange不能兼容ie8处理办法
2017/06/13 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
2018/05/16 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
bootstrap table插件动态加载表头
2019/07/19 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
python读写ini文件示例(python读写文件)
2014/03/25 Python
sqlalchemy对象转dict的示例
2014/04/22 Python
Python从MP3文件获取id3的方法
2015/06/15 Python
python:print格式化输出到文件的实例
2018/05/14 Python
Django xadmin安装及使用详解
2020/10/26 Python
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
Html5页面内使用JSON动画的实现
2019/01/29 HTML / CSS
.NET程序员的数据库面试题
2012/10/10 面试题
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
岗位说明书标准范本
2014/07/30 职场文书
表扬信范文
2015/05/04 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
JavaScript控制台的更多功能
2021/04/28 Javascript
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技