只用HTML,如何打开手机相机?前端小哥现场教学
myzbx 2025-01-15 15:55 22 浏览
Alex 发自 凹非寺
量子位 | 公众号 QbitAI
HTML不是编程语言,但这并不妨碍前端工程师把它玩出花儿来。
比如,有人就拿HTML来访问用户的相机——
在网页上,点击按钮即可直接打开手机前置镜头来拍照。
(没错,就是前置镜头!小哥可能有镜子之类的)
也可以调用手机的后置镜头,开启摄像模式。
值得注意的是,在这里,小哥只用了HTML语言就实现了上述功能。
他利用HTML的capture属性,只需设置几个input参数,再加上几行代码搞定了。
比起别的实现方式,这样可以更便捷地获取用户相机权限;而且没什么安全问题。
不出所料,一大波程序员纷纷前来围观。有人表示:
用HTML capture属性直接访问相机,确实比用JavaScript更方便。
这位小哥的网名叫Austin Gil,他是一位从事网页开发的工程师。
下面就跟随小哥分享的内容,一起来看看具体实现步骤吧。
如何用HTML打开相机?
首先当然是写代环节。
小哥创建了一个index.html文档,配合HTML的accpet属性,来指定不同标签所要capture的文件的具体属性。
在这里,他设置了“environment”和“user”两个标签。
当用户点击environment时,可以调用设备的后置镜头,并拥有录像功能;而当用户点击user时,就能打开设备前置镜头来拍照了。
具体代码如下:
到这里,眼尖的人可能已经发现:没有提示用户是否打开访问相机的权限,网页就直接调用了相机。
那这样操作,有没有安全风险啊?
对此,小哥给出答案:无额外风险。
因为浏览器其实并不能真正控制用户相机(虽然看起来好像可以直接访问),而不过是能轻松上传相机生成的新文件罢了。
说人话——对用户而言,浏览器通过HTML只能打开摄像头;如果需要把照片或者视屏展示到网站,或者保存下来,仍然需要用到JavaScript的MediaDevices API。
有网友补充道,这种操作方式比纯用JavaScript更安全。
因为运用JS的话,在用户允许访问相机后,浏览器就能直接控制摄像头。
而在Web 3.0标准之后(现在主要用的是Web 5标准),规定网页不能直接访问用户的镜头。
不过,小哥也指出:这种直接通过HTML指令打开用户用户摄像头的方式还存在目前不足,比如兼容性不太好。
△图源caniuse.com:红色框表示不支持;绿色框表示支持;棕色框表示部分支持;灰色框表示未知
量子位亲测了一下小哥的这段代码,结果显示:
点击environment和user按钮,在MacBook上分别可以打开视频格式和图片格式的文件;
而在iPhone上,使用百度等浏览器,真的可以直接打开前置和后置摄像头。
感兴趣的伙伴们可以用下面链接中的代码试试~
传送门:
https://austingil.com/html-capture-attribute/
参考链接
[1]https://www.youtube.com/watch?v=DSTXUEHZRiU&t=1s
[2]https://news.ycombinator.com/item?id=32738501
— 完 —
量子位 QbitAI · 头条号签约
关注我们,第一时间获知前沿科技动态
相关推荐
- 重要提醒:一种常见药,千万不要掰开吃,严重可致休克!
-
前段时间,有报道称,福州40岁的张女士,在服用降压药时咬断药片,吃了大半片。不到半小时,她突然眼前发黑、冒冷汗、脚软站不住,差点发生危险。原来,张女士服用的这个药是硝苯地平控释片,1片相当于3...
- Chinese FM spokesperson's remarks on Philippines' statement on 9th Anniversary of "2016 Arbitral Award on the South China Sea"
-
BEIJING,July12(Xinhua)--China'spositiononthe"2016ArbitralAwardontheSouthChinaSea"is...
- 三星S系列历年无线充电手机盘点,15W无线充电功率用了7年
-
前言三星S系列作为曾经的安卓机皇,各项配置都是顶级水准。但随着国产手机的技术实力越来越强,三星目前很多配置都谈不上顶尖了。其中,充电速度就是三星S系列的一大劣势点。充电头网下面就盘点一下三星S系列历年...
- 北汽幻速H6 S7 H2 S5 S3 S2 S6 H3 H5 S7维修手册电路图
-
2016-幻速H6-电路图2017-幻速S7-电路图2016-幻速H2V-电路图2015-幻速S5-电路2016-幻速H3F-电路2015-幻速H2E-电路2016-幻速S3L-电路2014-幻速S2...
- GCV-3色谱检定仪 气相色谱仪检定装置 JJG700-2016规程铂电阻温度计
-
气相色谱仪作为现代分析实验室的核心设备,其性能的准确性直接关系到检测数据的可靠性。通量科技(南通)有限公司依据JJG700-2016《气相色谱仪检定规程》研发的整套气相色谱仪检定装置,通过标准物质与精...
- 特斯拉Model S电动车第三次改款,测试图曝光
-
IT之家5月22日消息,汽车媒体Drive今天(5月22日)发布博文,分享了一组在德国纽博格林赛道上抓拍到图片,展示了特斯拉新款ModelS。根据曝光的测试图片,特斯拉Mode...
- 土耳其F-16首次发射SOM-J巡航导弹,被F-35抛弃转投无人机
-
据海军新闻网站2025年3月24日报道,2025年3月21日,土耳其工业与技术部长宣布,由T"UBITAKSAGE研发的SOM-J(防区外弹药-J)巡航导弹在首次海上试射中成功命中目标。土耳其工业与...
- 毛细管黏度计检定装置-工作毛细管黏度计 满足JJG 155-2016规程
-
毛细管黏度计检定装置作为现代实验室中测量液体黏度的关键设备,其精度和可靠性直接影响石油、化工、医药等行业的质检结果。通量科技(南通)有限公司基于JJG155-2016规程研发的系列检定装置,通过技术...
- 盼星星盼月亮,理想ONE 1:18合金车模终于到了
-
正如标题所述,在跳票一个半月后,这台2020款理想ONE的1:18合金车模终于送到我们办公室。这款模型原定是今年6月中旬发货的,但不知道是什么原因,理想方面突然停止了发货,仅有很少一批用户得到了模型。...
- “墙裂”推荐!越挫越勇的前端周刊(第五期)
-
前端周刊是一份专为前端从业人员,以及对前端、设计领域感兴趣的朋友们打造的技术周刊。程小狮会精选出前端、设计领域近期相关的资讯、热点以及技术干货,与大家一同分享。前端周刊专注于前端领域技术分享。希望这份...
- JavaScript的Symbol,解决了多少你不知道的隐形大麻烦?
-
各位码农兄弟姐妹,以及对科技世界充满好奇的朋友们,大家好!你有没有在编写JavaScript代码时,遇到过一些让你头疼的“隐形”问题?比如,当你尝试往一个别人写的对象里添加新属性,结果不小心覆盖了原有...
- 2015款新尚酷9月接受预定 交家电大众实拍
-
大众新款尚酷在九月份南京已经开始销售,该车先期或只推出一款1.4T车型,售价为22.8万元。相比现款车型,新车对外观细节进行调整。尚酷Scirocco意思是撒哈拉吹向地中海的沙漠热风。是大众第一款全轮...
- ES6 的新增语法
-
一、什么是ES6?ES的全称是ECMAScript,它是由ECMA国际标准化组织,制定的一项脚本语言的标准化规范。ES6实际上是一个泛指,泛指ES2015及后续的版本。为什么使用...
- Excel宏(JSA)教程——初识Javascript
-
要想学好JSA,掌握好Javascript的是基础。那么什么是Javascript,这门编程语言有什么特征?今天我们就来聊一聊这些内容,让我们对Javascript有一个初步认识。发展历史1995年被...
- ES6环境搭建及react-router学习
-
一、起因ES6新纳入了很多振奋人心的新特性,真的很让人忍不住去尝试一下。不过,由于现在大部分的浏览器对ES6的支持程度都不是很好。所以如果想要放心地使用一些新特性,还需要用一些工具,将ES6或者ES7...
- 一周热门
- 最近发表
-
- 重要提醒:一种常见药,千万不要掰开吃,严重可致休克!
- Chinese FM spokesperson's remarks on Philippines' statement on 9th Anniversary of "2016 Arbitral Award on the South China Sea"
- 三星S系列历年无线充电手机盘点,15W无线充电功率用了7年
- 北汽幻速H6 S7 H2 S5 S3 S2 S6 H3 H5 S7维修手册电路图
- GCV-3色谱检定仪 气相色谱仪检定装置 JJG700-2016规程铂电阻温度计
- 特斯拉Model S电动车第三次改款,测试图曝光
- 土耳其F-16首次发射SOM-J巡航导弹,被F-35抛弃转投无人机
- 毛细管黏度计检定装置-工作毛细管黏度计 满足JJG 155-2016规程
- 盼星星盼月亮,理想ONE 1:18合金车模终于到了
- “墙裂”推荐!越挫越勇的前端周刊(第五期)
- 标签列表
-
- HTML 简介 (30)
- HTML 响应式设计 (31)
- HTML URL 编码 (32)
- HTML Web 服务器 (31)
- HTML 表单属性 (32)
- HTML 音频 (31)
- HTML5 支持 (33)
- HTML API (36)
- HTML 总结 (32)
- HTML 全局属性 (32)
- HTML 事件 (31)
- HTML 画布 (32)
- HTTP 方法 (30)
- 键盘快捷键 (30)
- CSS 语法 (35)
- CSS 轮廓宽度 (31)
- CSS 谷歌字体 (33)
- CSS 链接 (31)
- CSS 定位 (31)
- CSS 图片库 (32)
- CSS 图像精灵 (31)
- SVG 文本 (32)
- 时钟启动 (33)
- HTML 游戏 (34)
- JS Loop For (32)