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 相关文章推荐
详解CSS样式中的 !important * _ 符号
Mar 09 HTML / CSS
在HTML5中如何使用CSS建立不可选的文字
Oct 17 HTML / CSS
CSS3 animation实现简易幻灯片轮播特效
Sep 27 HTML / CSS
canvas实现俄罗斯方块的方法示例
Dec 13 HTML / CSS
分享一个H5原生form表单的checkbox特效代码
Feb 26 HTML / CSS
使用css3 属性如何丰富图片样式(圆角 阴影 渐变)
Nov 22 HTML / CSS
html5模拟平抛运动(模拟小球平抛运动过程)
Jul 25 HTML / CSS
HTML5实现获取地理位置信息并定位功能
Apr 25 HTML / CSS
HTML5未来发展趋势
Feb 01 HTML / CSS
浅析HTML5中的 History 模式
Jun 22 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
Sep 07 HTML / CSS
Html5嵌入钉钉的实现示例
Jun 04 HTML / CSS
CSS 伪元素::marker详解
深入理解margin塌陷和margin合并的解决方案
CSS实现章节添加自增序号的方法
CSS变量实现主题切换的方法
Jun 23 #HTML / CSS
CSS3实现列表无限滚动/轮播效果
HTML5页面音频自动播放的实现方式
Jun 21 #HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
You might like
下载文件的点击数回填
2006/10/09 PHP
PHP foreach循环使用详解与实例代码
2010/05/08 PHP
PHP图片验证码制作实现分享(全)
2012/05/10 PHP
使用PHP获取汉字的拼音(全部与首字母)
2013/06/27 PHP
php中\r \r\n \t的区别示例介绍
2014/02/08 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
thinkPHP实现表单自动验证
2014/12/24 PHP
PHP中实现获取IP和地理位置类分享
2015/02/10 PHP
PHP利用Mysql锁解决高并发的方法
2018/09/04 PHP
基于jQuery的history历史记录插件
2010/12/11 Javascript
ejs v9 javascript模板系统
2012/03/21 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
jquery中trigger()无法触发hover事件的解决方法
2015/05/07 Javascript
简单理解js的冒泡排序
2016/12/19 Javascript
bootstrap table单元格新增行并编辑
2017/05/19 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
2018/09/20 Javascript
Python装饰器基础详解
2016/03/09 Python
Python实现的选择排序算法示例
2017/11/29 Python
从列表或字典创建Pandas的DataFrame对象的方法
2019/07/06 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
如何在Anaconda中打开python自带idle
2020/09/21 Python
英国乡村时尚和宠物用品专家:Pet & Country
2018/07/02 全球购物
《与朱元思书》的教学反思
2014/04/17 职场文书
工作作风建设心得体会
2014/10/22 职场文书
餐饮服务员岗位职责
2015/02/09 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
歌舞青春观后感
2015/06/10 职场文书
赢在执行观后感
2015/06/16 职场文书
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android
pnpm对npm及yarn降维打击详解
2022/08/05 Javascript