13397158231   jevian_ma@worldflying.cn

如何利用html5技术实现自拍

2017-08-28 10:00:00

html5标准从2013年开始定制完毕,直到现在为止已经过去了4个年头,小沃从最开始接触html5技术到现在,也越来多的发现html5技术的强大之处了。

目前html5技术已经完全可以取代flash了,他的一些非常实用的标签也逐步成熟起来。html5的本地存储,解决了浏览器存储大量数据的问题。audio标签,video标签解决了浏览器播放音频,视频的问题。

最近,由于项目的要求,小沃开始研究如何通过html5技术打开摄像头并且拍照的功能,小有成就,现在就与大家分享一下。


首先,如果要使用html技术打开摄像头,需要先了解navigator.getUserMedia这个对象。

这个对象是html5新出的对象,目的在于控制摄像头,喇叭和麦,实现更加丰富的多媒体效果。


第一步、获取navigator.getUserMedia对象

由于浏览器的兼容性各不相同,因此需要用一点小手段来兼容所有的浏览器。

这里我们使用

navigator.getMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia || navigator.mediaDevices.getUserMedia;

这样的一个或操作来实现获取可以支持的navigator.getMedia对象。


第二步、打开相关硬件

这里我们直接使用

navigator.getMedia({

    "video": true,//打开摄像头

    "audio": false//关闭麦

}, function(stream) {//打开成功的回调函数

}, function(error) {//打开失败的回调函数

});

这一步执行完毕后,电脑或手机的摄像头就应该已经打开了。


第三步、将打开后的源指定到video或是audio的src属性中去。

这一步看上去简单,其实中间还差一步没有完成呢,那就是创建一个url对象,创建方法如下:

var URL = window.URL || window.webkitURL;//这里也是为了解决浏览器兼容问题。

然后使用URL.createObjectURL(stream);并且将返回值赋值到video标签的src中。


第四步、使用canvas获取video标签中的一帧

不知道大家有没有学习使用过canvas,在canvas上画所使用的方法是drawImage,但是他不是canvas的方法,他是canvas所带的contents的方法。然后再使用.toDataURL来导出它

var context = canvas.getContext("2d");

context.drawImage(video, 0, 0, canvas.width, canvas.height);

canvas.toDataURL("image/jpeg");


这里需要注意下,这个必须使用https协议,不支持http协议,否则权限不足。

                        html5调用摄像头实现拍照                拍照



优秀产品推荐:可编程网络IO控制器

上一篇:使用eclipse搭建spring+springmvc+mybatis开发框架

下一篇:php中的互斥与同步

联系我们

  • 地址:武汉市东湖高新开发区光谷总部国际1栋2412室
  • QQ:932773931
  • 电话:027-59761089-806
  • 手机:13397158231
  • 邮箱:jevian_ma@worldflying.cn

关注公众号

扫码添加微信

沃航(武汉)科技有限公司版权所有

备案号:鄂ICP备16014230号-1

本网站由提供CDN加速/云存储服务