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的transform做的动态时钟效果
Sep 21 HTML / CSS
CSS3 选择器 基本选择器介绍
Jan 21 HTML / CSS
css3动画事件—webkitAnimationEnd与计时器time事件
Jan 31 HTML / CSS
Html5剪切板功能的实现代码
Jun 29 HTML / CSS
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
Apr 22 HTML / CSS
HTML5语音识别标签写法附图
Nov 18 HTML / CSS
H5调用相机拍照并压缩图片的实例代码
Jul 20 HTML / CSS
微信端html5页面调用分享接口示例
Mar 14 HTML / CSS
关于canvas绘制模糊问题的解决方法
Sep 24 HTML / CSS
5分钟实现Canvas鼠标跟随动画背景
Nov 18 HTML / CSS
html5拖拽应用记录及注意点
May 27 HTML / CSS
CSS3实现模糊背景的三种效果示例
Mar 30 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中CI操作多个数据库的代码
2012/07/05 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
PHP实现限制IP访问的方法
2017/04/20 PHP
php从数据库中读取特定的行(实例)
2017/06/02 PHP
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
一个简单的js鼠标划过切换效果
2010/06/30 Javascript
利用javascript的面向对象的特性实现限制试用期
2011/08/04 Javascript
js点击出现悬浮窗效果不使用JQuery插件
2014/01/20 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
jQuery动画效果相关方法实例分析
2015/12/31 Javascript
学习JavaScript设计模式之状态模式
2016/01/08 Javascript
使用JavaScript获取Request中参数的值方法
2016/09/27 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
js+canvas实现滑动拼图验证码功能
2018/03/26 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
python使用wmi模块获取windows下硬盘信息的方法
2015/05/15 Python
MAC中PyCharm设置python3解释器
2017/12/15 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
2018/04/18 Python
linux安装python修改默认python版本方法
2019/03/31 Python
Jupyter notebook运行Spark+Scala教程
2020/04/10 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
Python内置函数property()如何使用
2020/09/01 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
美国最大的在线生存商店:Survival Frog
2020/12/13 全球购物
PHP如何自定义函数
2016/09/16 面试题
市场营销管理毕业生自荐信
2014/03/03 职场文书
2014爱耳日宣传教育活动总结
2014/03/09 职场文书
大学本科生职业生涯规划书范文
2014/09/14 职场文书
2014预备党员批评与自我批评思想汇报
2014/09/20 职场文书
培训督导岗位职责
2015/04/10 职场文书
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
Redis特殊数据类型HyperLogLog基数统计算法讲解
2022/06/01 Redis