最近做的项目遇到了个难题,使用video+canvas+getUserMedia()写的调用本地摄像头拍照不兼容IE。
原因:IE8及以下不支持HTML5标签:video和canvas;IE11及以下所有版本,包括Edge都不支持getUserMedia()。
所以,这几天在网上各种搜,发现想要兼容IE浏览器就只能使用Flash。
解决方案
方案一
flash+as3.0+swfobject实现摄像头拍照
方案分析:
1、使用 adobe flash + actionscript 制作swf文件;
2、采用swfobject.js插件实现页面调用swf文件。
有一篇博客写得特别好:flash+as3.0+swfobject实现摄像头拍照
这样可以自定义swf文件,但是代价好高啊,还要去学actionscript并且要装adobe flash CS6,花的时间太多了。
所以我想到既然有封装的swfobject插件可以更方便的插入flash,那是不是有兼容性好的封装好的控件可以直接调用摄像头。这个搜索过程真的是艰辛无比啊!终于让我找到了jQuery摄像头插件“jquery-webcam-plugin”。
方案二
jquery-webcam-plugin+canvas+后台处理
方案分析:
使用 jquery-webcam-plugin 显示本地摄像头。
点击拍照按钮后,
(a) 针对 IE9 及以上:通过flash调用摄像头后,将图像直接输出到canvas画布中