javascript - HTML 媒体捕获 API 与 getUserMedia()

标签 javascript html webcam

目前,我正在尝试做一些非常简单的事情(好吧,实际上我认为这很简单......):我想在网络应用程序中从网络摄像头拍摄照片.

我偶然发现了两种可能性:

<强>1。看起来非常简单的 HTML Media Capture API:

<input type="file" accept="image/*" capture="camera">

<强>2。 JavaScript 媒体流,看起来也很简单:

navigator.getUserMedia()

我的问题来了:

HTML 媒体捕获 API 在桌面浏览器中不工作,JavaScript 媒体流在 iOS 上不工作。那我该吃哪一个呢?两个都? future 会开发哪一款?哪一种是首选方式?你更倾向哪个?一种解决方案是否有任何我没有看到的缺点(兼容性除外?)。

谢谢。

顺便说一句:我不是经验丰富的 HTML/JavaScript 开发人员,所以请多关照 ;)

最佳答案

移动浏览器

使用 HTML Media Capture 从相机直接捕捉图像:

<input type="file" accept="image/*" capture >

Android (3.0+) 将直接跳转到相机。下面是一些 CSS 样式后它将如何处理:

Pipe Video Recorder on Android

iOS (6-10) 仍会为您提供选择现有照片的选项,因为它不支持 capture .参见 Correct Syntax for HTML Media Capture了解详情。

桌面浏览器:

  1. 访问网络摄像头:使用 MediaStream API 的 getUserMedia :

navigator.getUserMedia或更新的基于 promise 的 navigator.mediaDevices.getUserMedia

  1. 使用 Canvas 拍摄快照

David Walsh's example涵盖桌面上的两个步骤。

关于javascript - HTML 媒体捕获 API 与 getUserMedia(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16338937/

相关文章:

javascript - jQuery 对对象的伪类 CSS 的修改是如何工作的?

html - 如何在 Bootstrap 中创建带有下拉菜单的文本链接?

c# - 如何获取avicap32.dll中已连接的网络摄像头列表?

C# 网络摄像头 WM_CAP_CONNECT : Want to force a capture source when multiple capture sources present

javascript - .map 在更新状态后没有重新渲染

javascript - 使用 Node.js 在进程终止时执行事件

php - PHP 中的 Javascript .toString(16)

javascript - 具有多列的 CSS 列表,具有水平滚动和自动列宽和高度

html - 在表内有一个元素但在 td 之外

javascript - 上传从网络摄像头拍摄的图片