当前位置: 首页 > 科技观察

如何仅使用HTML打开手机摄像头?前端小哥现场教学

时间:2023-03-17 00:48:42 科技观察

本文经AI新媒体量子比特(公众号ID:QbitAI)授权转载,转载请联系出处。HTML不是编程语言,但这并不妨碍前端工程师把玩它。比如有人用HTML访问用户的相机——在一个网页上,点击一个按钮可以直接打开手机前置摄像头拍照。(没错,就是前置摄像头!小弟可能有镜子什么的)也可以调用手机后置摄像头开启拍照模式。值得注意的是,这里小哥只是使用HTML语言实现了以上功能。他利用HTML的capture属性,只需要设置几个入参,加上几行代码就搞定了。相比其他实现方式,可以更方便的获取用户相机权限;并且没有安全问题。不出所料,一大波程序员围观。有人说用HTML的capture属性直接访问camera确实比用JavaScript方便。小弟弟的网名是AustinGil,是一名从事网页开发的工程师。下面就跟着小哥分享的内容,一起来看看具体的实现步骤吧。如何用HTML打开相机?首先当然是写作环节。小弟创建了一个index.html文件,里面有HTML的accpet属性,用来指定不同标签抓取的文件的具体属性。在这里,他设置了“环境”和“用户”两个标签。当用户点击环境时,可以调用设备后置摄像头,并具有录音功能;当用户点击用户时,可以打开设备的前置摄像头进行拍照。具体代码如下:至此,眼尖的人可能已经发现,网页直接调用了摄像头,并没有提示用户是否启用摄像头的访问权限。这样做有什么安全风险吗?对此,小哥给出了答案:没有附加风险。因为浏览器并不能真正控制用户的摄像头(虽然貌似可以直接访问),但是可以很方便的上传摄像头产生的新文件。用人话来说——对于用户来说,浏览器只能通过HTML打开摄像头;如果您需要在网站上显示或保存照片或视频,您仍然需要使用JavaScript的MediaDevicesAPI。有网友补充说,这种操作方式比纯JavaScript更安全。因为使用了JS,在用户允许访问摄像头后,浏览器就可以直接控制摄像头了。在Web3.0标准之后(现在主要是Web5标准),规定网页不能直接访问用户的摄像头。不过小哥也指出,这种通过HTML指令直接打开用户相机的方式还存在兼容性较差等不足。△图源caniuse.com:红框表示不支持;绿框表示支持;棕色框表示部分支持;灰框表示未知量子位在MacBook上,可以分别打开视频格式和图片格式的文件;在iPhone上,使用百度等浏览器,真的可以直接打开前后摄像头。有兴趣的小伙伴可以使用下面链接中的代码试试~传送门:https://austingil.com/html-capture-attribute/