介绍
这篇文章将为大家详细讲解有关H5如何实现拍照功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
HTML5拍照首先,我们看看HTML代码结构,当然,这部分的DOM内容应该是在用户允许使用其摄像头事件出发后,动态加载生成的,感兴趣的朋友可以了解下
演示地址:HTML5拍照演示
首先,我们看看HTML代码结构,当然,这部分的DOM内容应该是在用户允许使用其摄像头事件出发后,动态加载生成的。
注意:我们采用的是640 x480的分辨率,如果采用JS动态生成,那么您是可以灵活控制分辨率的。
代码如下:
& lt; !— 声明:此p应该在允许使用摄像头,网络摄像头之后动态生成 宽高:640 * 480,当然,可以动态控制啦! ——比; & lt; ! Ide 所有 y这些元素是# 39;t创建直到变# 39;证实了 客户端支持视频/相机,但是 为 为了说明 元素参与,他们创建标记(不是 JavaScript ) ——比; & lt;视频id=皏ideo" 宽度=?40”; 高度=?80”; 播放 祝辞& lt;/video> & lt;按钮id=皊nap"祝辞提前Photo & lt; 帆布 id=癱anvas"宽度=?40”;身高=?80“祝辞& lt;/canvas>
JavaScript
只要上面的HTML元素创建完成,那么JavaScript部分将简单的超乎你想象的简单:
代码如下:
//设置事件监听,DOM内容加载完成,和 jQuery 的美元时()效果差不多。 window.addEvent 列表 释放埃拉(“DOMContentLoaded"、功能(){//帆布元素将用于抓拍 画布var=文档 .getElementById (“canvas"), 上下文=canvas.getContext (“2 d"),//视频元素,将用于接收并播放摄像头的数据流 视频=. getelementbyid (“video"), videoObj={“video":真},//一个出错的 回调函数 ,在控制台打印出错信息 errBack=function(错误){ 如果 (“; 对象 “;===typeof window.console) { console.log(“视频捕捉错误:“,error.code); } };//把视频的听众//针对标准的浏览器 如果(navigator.getUserMedia){//标准 导航器。getUserMedia (videoObj函数(流){ 视频。src=https://www.yisu.com/zixun/stream; video.play (); },errBack); } 其他的 如果(navigator.webkitGetUserMedia) {//WebKit-prefixed 导航器。webkitGetUserMedia (videoObj函数(流){ 视频。src=window.webkitURL.createObjectURL(流); video.play (); },errBack); }//对拍的照 按钮 的事件监听 . getelementbyid(“临时”)。addEventListener(“点击”,函数(){//画到画布上 上下文。drawImage(视频,0,0,640,480); }); },假);
最后,记得讲您的网页放到web服务器下面,然后通过http协议来访问哦。
另外,需要浏览器版本较新,并且支持HTML5的相关新特性才可以。
译者不算称职啦,没有按原文来翻译。使用的浏览器是chrome 28。
最后,贴上完整的代码,比较呆板。
代码如下:
& lt; !DOCTYPE html> & lt; html> & lt; head> & lt; title>浏览器webcamera & lt;/title> & lt;元名称=癎enerator"内容=癊ditPlus"比; & lt;元名称=癆uthor",内容=皉enfufei@qq.com"的在 & lt;元名称=癉escription",内容=癷nveted: http://davidwalsh.name/browser-camera"的在; & lt; script>//设置事件监听,DOM内容加载完成,和jQuery的美元时()效果差不多。 window.addEventListener (“DOMContentLoaded"、功能(){//帆布元素将用于抓拍 画布var=. getelementbyid (“canvas"), 上下文=canvas.getContext (“2 d"),//视频元素,将用于接收并播放摄像头的数据流 视频=. getelementbyid (“video"), videoObj={“video":真},//一个出错的回调函数,在控制台打印出错信息 errBack=function(错误){ 如果(“object"===typeof window.console) { console.log(“视频捕捉错误:“,error.code); } };//把视频的听众//针对标准的浏览器 如果(navigator.getUserMedia){//标准 导航器。getUserMedia (videoObj函数(流){ 视频。src=https://www.yisu.com/zixun/stream; video.play (); },errBack); }如果(navigator.webkitGetUserMedia) {//WebKit-prefixed 导航器。webkitGetUserMedia (videoObj函数(流){ 视频。src=window.webkitURL.createObjectURL(流); video.play (); },errBack); }//对拍照按钮的事件监听 . getelementbyid(“临时”)。addEventListener(“点击”,函数(){//画到画布上 上下文。drawImage(视频,0,0,640,480); }); },假);>H5如何实现拍照功能