博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTML5调用手机前置摄像头或后置摄像头拍照,canvas显示,经过Android测试
阅读量:6995 次
发布时间:2019-06-27

本文共 1650 字,大约阅读时间需要 5 分钟。

HTML5可以通过调用navigator.getUserMedia来获取手机设备摄像头,兼容性写法如下

window.navigator.getUserMedia = navigator.getUserMedia || navigator.webKitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;

但是navigator.getUserMediau已经从 Web 标准中删除,虽然部分浏览器可以使用,生产环境中还是要做好兼容。新的API更替为MediaDevices.getUserMedia。MediaDevices.getUserMedia可以通过video的facingMode属性指定调用手机的前置或后置摄像头

video:{ 'facingMode': "user" }//调用前置摄像头
video: { facingMode: { exact: "environment" } }//后置

具体代码:

    
Document1

开启摄像头

显示到Canvas

关闭摄像头

以上代码并没有进行太多的错误处理,比如用户拒绝授权访问摄像头或浏览器不支持等情况,生产环境使用需添加错误处理代码

以上代码在PC端和Android手机端和微信测试通过,IOS下浏览器均不支持,据说IOS11会开放权限。

注意,以上HTML需要在HTTPS下访问方可正常工作
,如果使用微信访问可能被屏蔽,微信打开链接后点击右下角“访问原网页”
如需本地测试请使用Chrome插件:;
webserver使用方法:chrome://apps > web-server > choose folder 勾选 Show Advanced Settings下Set CORS Headers即可
使用input type=”file”调用摄像头拍照可以参考

补充下,获取vedio的实际尺寸,可以通过:this.videoWidth,this.videoHeight获取。

HTML5之drawImage函数

可用函数

drawImage(image, x, y) //按原图片大小绘制。drawImage(image, x, y, width, height) //按指定大小绘制。drawImage(image, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, destWidth, destHeight) //常用于图片裁剪

参数

image:所要绘制的图像。这必须是表示  标记或者屏幕外图像的 Image 对象,或者是 Canvas 元素。 x和y:图片在文档中的坐标位置。 width和height:图片的宽高。 对于drawImage(image, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, destWidth, destHeight) 常用有图片的裁剪。其参数含义是原来image上从某一个位置开始(sourceX,sourceY),指定长宽进行剪切(sourceX,sourceY),然后将剪切的内容放到位置为(destX,destY),宽度为(destWidth),高度为(destHeight)的位置上,当然裁剪后的会覆盖原来的图片。

    
drawImage

除此之外,drawImage()还可以画video,

转载地址:http://ldzvl.baihongyu.com/

你可能感兴趣的文章
HDU 3397 Sequence operation(线段树区间染色加区间合并)
查看>>
【随笔】写下现在所想的,开始写博客
查看>>
linux命令之vi文本编辑器
查看>>
WPF-WrapPanel
查看>>
大家好
查看>>
iOS 疑难杂症 — — UITableView 添加 tableFooterView 旋转屏幕后收不到点击事件!!!...
查看>>
asp.net 8 Request,Response,Server
查看>>
Windows API 技巧集
查看>>
github心得体会
查看>>
Binary Tree Level Order Traversal [LEETCODE]
查看>>
Install/uninstall .deb files
查看>>
如何让自己的代码更加安全?
查看>>
EBS_DBA_问题:关于不小心drop了表,进行恢复
查看>>
MongoDB数据库
查看>>
HDU-1875-畅通工程再续(最小生成树)
查看>>
POJ-1182-食物链(并查集种类)
查看>>
POJ1288 Sly Number(高斯消元 dfs枚举)
查看>>
Toping Kagglers:Bestfitting,目前世界排名第一
查看>>
Missing key(s) in state_dict: Unexpected key(s) in state_dict
查看>>
sqlconnection,sqlcommand,sqldataadapter,sqldatareader,dataset都是做什么用的?
查看>>