javascript - 从html5拍照

标签 javascript android html camera getusermedia

我阅读了很多从 html5 页面获取图像的方法。 我仍然不确定什么最适合我的需求:

  • 广泛支持浏览器和操作系统:至少:chrome、firefox、android default、safari
  • 我不需要实时采集。用户必须按下按钮才能拍照,请求系统相机应用

至少有三种解决方案:

  • <input type="file" accept="image/*;capture=camera">
  • Navigator.getUserMedia() (似乎已弃用)
  • MediaDevices.getUserMedia() (这似乎是实验性的)

反正我看到很多把摄像头嵌入页面的例子(w/ getUserMedia)所以我不知道我是否只能依靠第一种方法。

最佳答案

使用 WebRTC getUserMedia API 将涵盖除 Safari 之外的所有现代浏览器:http://caniuse.com/#feat=stream

Here是一个使用 getUserMedia 拍摄静态图片的示例页面(带有指向描述代码的 page 的链接)。大多数 getUserMedia 演示在可见的 Canvas 区域中显示视频流,但这不是必需的。您可以使用 getUserMedia 捕获图像,而无需在可见 Canvas 中显示视频流。

不幸的是,Apple 在采用 WebRTC API 方面进展缓慢,因此我认为文件输入标签是您所能期望的最好的标签,除非您愿意使用 Cordova 之类的东西。 Here是对如何使用文件输入标签的说明。

Media Capture API是一个候选推荐,这意味着它正在成为一个标准,但是,我不知道有任何浏览器实现当前的 W3C 推荐(在输入标签中使用裸捕获属性)。 <input type="file" accept="image/*">目前似乎只有移动浏览器支持样式。

总而言之,如果您想在不久的将来获得广泛的浏览器支持,您将需要同时支持这两种方法,直到 Apple 开始支持 WebRTC API 或直到其他桌面浏览器开始支持 Media Capture API(或带有当前移动浏览器支持的捕获属性)。

关于javascript - 从html5拍照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38096115/

相关文章:

javascript - MongoDB:如何调用使用load函数加载的外部函数?

javascript - Chrome 扩展 - 当我包含 jQuery 库时,为什么 JS 会提示?

android - 这个线程安全吗?

javascript - PHP 将值从一种形式转换为另一种形式

html - Bootstrap HTML 回车

javascript - Flex - JavaScript 适用于 bin-debug,但不适用于已部署的服务器

javascript - 箭头函数参数周围应有括号。 (箭头括号)

android - 单击 Android 操作栏上的搜索图标?

android - 滚动时列表项发生变化

html - 将导航栏粘贴到居中图像