Redian新闻
>
只用HTML,如何打开手机相机?前端小哥现场教学

只用HTML,如何打开手机相机?前端小哥现场教学

公众号新闻
Alex 发自 凹非寺
量子位 | 公众号 QbitAI

HTML不是编程语言,但这并不妨碍前端工程师把它玩出花儿来。

比如,有人就拿HTML来访问用户的相机——

在网页上,点击按钮即可直接打开手机前置镜头来拍照。

(没错,就是前置镜头!小哥可能有镜子之类的)

也可以调用手机的后置镜头,开启摄像模式。

值得注意的是,在这里,小哥只用了HTML语言就实现了上述功能。

他利用HTML的capture属性,只需设置几个input参数,再加上几行代码搞定了。

比起别的实现方式,这样可以更便捷地获取用户相机权限;而且没什么安全问题。

不出所料,一大波程序员纷纷前来围观。有人表示:

用HTML capture属性直接访问相机,确实比用JavaScript更方便

这位小哥的网名叫Austin Gil,他是一位从事网页开发的工程师。

下面就跟随小哥分享的内容,一起来看看具体实现步骤吧。

如何用HTML打开相机?

首先当然是写代环节。

小哥创建了一个index.html文档,配合HTML的accpet属性,来指定不同标签所要capture的文件的具体属性。

在这里,他设置了“environment”“user”两个标签。

当用户点击environment时,可以调用设备的后置镜头,并拥有录像功能;而当用户点击user时,就能打开设备前置镜头来拍照了。

具体代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width,initial-scale=1" />
  <style>
    * {
      font-size1.5rem;
    }
  
</style>
</head>

<body>
  <label for="environment">Capture environment:</label>
  <br>
  <input
    type="file"
    id="environment"
    capture="environment"
    accept="video/*"
  >

  <br><br>
  <label for="user">Capture user:</label>
  <br>
  <input
    type="file"
    id="user"
    capture="user"
    accept="image/*"
  >

</body>

</html>

到这里,眼尖的人可能已经发现:没有提示用户是否打开访问相机的权限,网页就直接调用了相机。

那这样操作,有没有安全风险啊?

对此,小哥给出答案:无额外风险

因为浏览器其实并不能真正控制用户相机(虽然看起来好像可以直接访问),而不过是能轻松上传相机生成的新文件罢了。

说人话——对用户而言,浏览器通过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

「2022人工智能年度评选」火热报名中

现在,量子位「2022人工智能年度评选」已经正式启幕,评选将从企业、人物、产品/解决方案三大维度设置5类奖项。

更多关于评选标准、榜单报名欢迎扫描下方二维码~


点这里关注我 👇 记得标星噢 ~


一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见 ~  



微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
女儿女婿为中餐馆义务打工【教师教学技能研修专题讲座】基于学习动机的教学设计教你如何使用 htmlq 提取 html 文件内容欢迎使用HotelFT:为常旅客设计的酒店DP和信息查询网站!【近期功能更新汇总】获上海家化投资,年营收千万,本土香氛品牌节气盒子,如何打造独特的东方嗅觉体验?抖音音乐星河携手88rising,如何打造最温暖走心的音乐企划?这香港女孩下跪痛哭,但为什么她的身旁安排了5架相机?核能供暖再添一地 有何优势?前景如何?【无忧宝藏房源!Brighton两室公寓带两个车位出租】11月入住,近BC和Brighton镇中心澳洲教育有望迎来重大改革!全澳统一教学大纲!孩子们的教学质量将得到有效保障!美国继续施压ASML,荷兰不想听从DS/ML 在Healthcare 领域发展缓慢?前景如何?一日一诗:这湿漉月光的夜里你展开手掌的站台 / 芳香 / 柔质 / 含着你特殊体温 |叶如钢:站台为什么荷兰ASML敢拒绝美国禁令,对华出口DUV光刻机?八卦真事儿!一个中国留澳男生,在澳洲谈了场教科书式的恋爱如何打开一颗心?人类心脏手术史上的奇迹大火的资生堂红腰子,今天100ml,低至3折入!万圣节惊魂!芝加哥现飞车枪击案,14人中枪;全美今年3.7万人命丧枪口。HRT:使用Huge Pages进行低延迟优化创新!有高校选修课教学生酿酒、实训课教学生砌墙......听,教育早新闻来啦!危机?什么危机?又来!某红圈被曝:实习6个月被鸽留用hc,居然只有这个组“逃过一劫”!台湾是不是中国的还要进行辩论网购手机相约面交,华男遭买家枪击胸膛险丧命AWS工程师辞职创建Tensor Search引擎,即插即用HuggingFace版CLIP模型在美国193.大耍威风、战争爆发好好的年轻人,为啥偏爱玩弄老相机?环游五大湖--游轮看pictured rocks national shoreline新兴市场教父:比特币明年将暴跌40%,跌破10000美元手机射频前端千亿市场怎么分?突发!美国两架飞机相撞坠毁,现场画面曝光假期旅行必看!多伦多机场教你如何预约快速安检:提前72小时就能约【无忧宝藏房源!Brighton两室公寓带两个车位出租】1月入住,近BC和Brighton镇中心钱学森的传闻教育部回应降低英语教学比重建议,如何评价?
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。