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 相关文章推荐
canvas之万花筒效果的简单实现(推荐)
Aug 16 HTML / CSS
css3 边框、背景、文本效果的实现代码
Mar 21 HTML / CSS
详解background属性的8个属性值(面试题)
Nov 02 HTML / CSS
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
Jan 30 HTML / CSS
html5 迷宫游戏(碰撞检测)实例一
Jul 25 HTML / CSS
html5拍照功能实现代码(htm5上传文件)
Dec 11 HTML / CSS
深入解析HTML5中的Blob对象的使用
Sep 08 HTML / CSS
html5 canvas移动浏览器上实现图片压缩上传
Mar 11 HTML / CSS
HTML5 移动页面自适应手机屏幕四类方法总结
Aug 17 HTML / CSS
canvas实现漂亮的下雨效果的示例
Apr 18 HTML / CSS
前端使用canvas生成盲水印的加密解密的实现
Dec 16 HTML / CSS
HTML+CSS制作心跳特效的实现
May 26 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
收音机鉴频器对声音的影响和频偏分析
2021/03/02 无线电
php数据类型判断函数有哪些
2013/09/23 PHP
PHP JS Ip地址及域名格式检测代码
2013/09/27 PHP
PHP执行SQL文件并将SQL文件导入到数据库
2015/09/17 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
JavaScript语法着色引擎(demo及打包文件下载)
2007/06/13 Javascript
jQuery ajax BUG:object doesn't support this property or method
2010/07/06 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
JS打开新窗口防止被浏览器阻止的方法
2015/01/03 Javascript
提升jQuery的性能需要做好七件事
2016/01/11 Javascript
JavaScript生成带有缩进的表格代码
2016/06/15 Javascript
vuejs如何配置less
2017/04/25 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
vue2 中二级路由高亮问题及配置方法
2019/06/10 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
树莓派中python获取GY-85九轴模块信息示例
2013/12/05 Python
python中sets模块的用法实例
2014/09/30 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
一行代码让 Python 的运行速度提高100倍
2018/10/08 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
2018/10/26 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
Tkinter中复选菜单是否被选中的判断与设置方式
2020/03/04 Python
django-csrf使用和禁用方式
2020/03/13 Python
python转化excel数字日期为标准日期操作
2020/07/14 Python
详解html5 shiv.js和respond.min.js
2018/01/24 HTML / CSS
在阿尔卑斯山或希腊度过快乐假期:Alpine Elements
2019/12/28 全球购物
经理秘书岗位职责
2013/11/14 职场文书
法律七进实施方案
2014/03/15 职场文书
2014年实习期工作总结
2014/11/27 职场文书
高二语文教学反思
2016/02/16 职场文书
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python