HTML5调用手机摄像头拍照的实现思路及代码


Posted in HTML / CSS onJune 15, 2014

小编将思路提供给了大家,学编程最重要的是实践,我这虽然有完善的代码,但是希望大家都可以自己写出属于自己的代码
HTML5 The Media Capture API提供了对摄像头的可编程访问,用户可以直接用getUserMedia获得摄像头提供的视频流。但实际上用html5调用手机摄像头存在很多问题:
1)谷歌的发布的Chrome到了21版本后,才新增了一个用于高质量视频音频通讯的getUserMedia API,该API允许Web应用程序访问摄像头和麦克风,其他手机浏览器只有opera支持html5调用本地拍照功能
2)两个浏览器均不支持访问多个摄像头:chrome不支持访问后置摄像头,pera支持访问后置摄像头的

android手机,浏览器chrome32版本下实现了浏览器调用设备摄像头进行拍照。主要分3个步骤来完成:

1)获取视频流
添加一个HTML5的Video标签,并将从摄像头获得视频作为这个标签的输入来源

复制代码
代码如下:

var video = document.getElementByIdx_x_x("video");
navigator.getUserMedia({video:true}, function (stream) {
video.src = window.webkitURL.createObjectURL(stream);
}, function (error) { alert(error); });

2)拍照
关于拍照功能,采用HTML5的Canvas实时捕获Video标签的内容,Video元素能作为Canvas图像的输入
复制代码
代码如下:

function scamera() {
var videoElement = document.getElementByIdx_x_x('video');
var canvasObj = document.getElementByIdx_x_x('canvas1');
var context1 = canvasObj.getContext('2d');
context1.fillStyle = "#ffffff";
context1.fillRect(0, 0, 320, 240);
context1.drawImage(videoElement, 0, 0, 320, 240);
}

3)图片获取
要从Canvas获取图片数据,其核心思路是用canvas的toDataURL将Canvas的数据转换为base64位编码的PNG图像
复制代码
代码如下:

var imgData=canvas.toDataURL(“image/png”);

imgData格式如下:”data:image/png;base64,xxxxx“
真正图像数据是base64编码逗号之后的部分
HTML / CSS 相关文章推荐
css3实现背景模糊的三种方式
Mar 09 HTML / CSS
使用CSS3代码绘制可爱的Hello Kitty猫
Aug 03 HTML / CSS
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
Jan 27 HTML / CSS
canvas实现图片马赛克的示例代码
Mar 26 HTML / CSS
html5小技巧之通过document.head获取head元素
Jun 04 HTML / CSS
Html5之title吸顶功能
Jun 04 HTML / CSS
html5拖拽应用记录及注意点
May 27 HTML / CSS
Canvas 帧动画吃苹果小游戏
Aug 05 HTML / CSS
AmazeUI 缩略图的实现示例
Aug 18 HTML / CSS
HTML5拖拽文件上传的示例代码
Mar 04 HTML / CSS
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
Apr 22 HTML / CSS
css清除浮动clearfix:after的用法详解(附完整代码)
May 21 HTML / CSS
html5在移动端的屏幕适应问题示例探讨
Jun 15 #HTML / CSS
HTML5 创建canvas元素示例代码
Jun 04 #HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
Jun 04 #HTML / CSS
html5小技巧之通过document.head获取head元素
Jun 04 #HTML / CSS
HTML5图片预览实例分享
Jun 04 #HTML / CSS
阻止移动设备(手机、pad)浏览器双击放大网页的方法
Jun 03 #HTML / CSS
Application Cache未缓存文件无法访问无法加载问题
May 31 #HTML / CSS
You might like
php Sql Server连接失败问题及解决办法
2009/08/07 PHP
Discuz!X中SESSION机制实例详解
2015/09/23 PHP
json跟xml的对比分析
2008/06/10 Javascript
jquery tools之tabs 选项卡/页签
2009/07/25 Javascript
通过action传过来的值在option获取进行验证的方法
2013/11/14 Javascript
js定时器的使用(实例讲解)
2014/01/06 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
2015/09/23 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
django 自定义用户user模型的三种方法
2014/11/18 Python
python的Crypto模块实现AES加密实例代码
2018/01/22 Python
详解Django中间件的5种自定义方法
2018/07/26 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
Python多线程模块Threading用法示例小结
2019/11/09 Python
python生成任意频率正弦波方式
2020/02/25 Python
Python+Kepler.gl实现时间轮播地图过程解析
2020/07/20 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
python 多线程中join()的作用
2020/10/29 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
Python创建文件夹与文件的快捷方法
2020/12/08 Python
深入探究HTML5的History API
2015/07/09 HTML / CSS
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
顶丰TOPPIK台湾官网:增发纤维假发,告别秃发困扰
2018/06/13 全球购物
一套英文Java笔试题面试题
2016/04/21 面试题
应届生财务会计求职信
2013/11/05 职场文书
学生党员思想汇报
2013/12/28 职场文书
最热门的自我评价
2013/12/30 职场文书
微博营销计划书
2014/01/10 职场文书
综治工作汇报材料
2014/10/27 职场文书
房屋买卖协议样本
2014/11/16 职场文书
2019年恭贺升学祝福语集锦
2019/08/15 职场文书
Python之matplotlib绘制饼图
2022/04/13 Python
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server