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属性汇总
Jul 21 HTML / CSS
利用CSS3实现平移动画效果示例代码
Oct 12 HTML / CSS
CSS3实现多样的边框效果
May 04 HTML / CSS
html5使用canvas实现图片下载功能的示例代码
Aug 26 HTML / CSS
如何使用html5与css3完成google涂鸦动画
Dec 16 HTML / CSS
css 如何让背景图片拉伸填充避免重复显示
Jul 11 HTML / CSS
使用HTML5的Notification API制作web通知的教程
May 08 HTML / CSS
canvas实现图片镜像翻转的2种方式
Jul 22 HTML / CSS
canvas绘制图片drawImage使用方法
Sep 15 HTML / CSS
css animation配合SVG制作能量流动效果
Mar 24 HTML / CSS
5个HTML5的常用本地存储方式详解与介绍
Mar 27 HTML / CSS
使用CSS实现黑白格背景效果
Jun 01 HTML / CSS
CSS 伪元素::marker详解
深入理解margin塌陷和margin合并的解决方案
CSS实现章节添加自增序号的方法
CSS变量实现主题切换的方法
Jun 23 #HTML / CSS
CSS3实现列表无限滚动/轮播效果
HTML5页面音频自动播放的实现方式
Jun 21 #HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
You might like
thinkphp连贯操作实例分析
2014/11/22 PHP
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
2017/06/17 PHP
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
一个js实现的所谓的滑动门
2007/05/23 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
2014/12/12 Javascript
js实现仿MSN带关闭功能的右下角弹窗代码
2015/09/04 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
JavaScript中的prototype原型学习指南
2016/05/09 Javascript
原生JS实现首页进度加载动画
2016/09/14 Javascript
webuploader模态框ueditor显示问题解决方法
2016/12/27 Javascript
AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
2018/01/30 Javascript
详解Angular系列之变化检测(Change Detection)
2018/02/26 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
vue中对象数组去重的实现
2020/02/06 Javascript
[45:52]2018DOTA2亚洲邀请赛 4.1小组赛 A组加赛 LGD vs Liquid
2018/04/02 DOTA
Python通过websocket与js客户端通信示例分析
2014/06/25 Python
python中pygame模块用法实例
2014/10/09 Python
Python中的__SLOTS__属性使用示例
2015/02/18 Python
Django自定义分页与bootstrap分页结合
2021/02/22 Python
浅谈Python Opencv中gamma变换的使用详解
2018/04/02 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
python实现抽奖小程序
2020/04/15 Python
Django自带用户认证系统使用方法解析
2020/11/12 Python
自荐信的五个重要部分
2013/10/29 职场文书
大门门卫岗位职责
2013/11/30 职场文书
条幅标语大全
2014/06/20 职场文书
学前教育专业求职信
2014/09/02 职场文书
自愿离婚协议书2015
2015/01/26 职场文书
毕业感言怎么写
2015/07/31 职场文书
css 中多种边框的实现小窍门
2021/04/07 HTML / CSS
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python
Python+Tkinter制作专属图形化界面
2022/04/01 Python
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技