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

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

1.看起来非常简单的HTML Media Capture API:

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

2. JavaScript媒体流,看起来也很简单:
navigator.getUserMedia()

这是我的问题:

HTML Media Capture API在桌面浏览器中不起作用,而JavaScript媒体流在iOS上不起作用。那我应该选哪一个呢?都?将来会开发哪一个?哪一种是首选方式?你更倾向哪个?在一种解决方案中是否有我看不到的缺点(除了兼容性以外)?

谢谢。

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

最佳答案

移动浏览器

使用HTML Media Capture直接从相机捕获图像:
<input type="file" accept="image/*" capture >
Android(3.0+)将直接跳至相机。这是一些CSS样式后的外观:

javascript - HTML Media Capture API与getUserMedia()-LMLPHP

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

桌面浏览器:

1)访问网络摄像头:使用MediaStream API的getUserMedia:
navigator.getUserMedia或较新的基于Promise的navigator.mediaDevices.getUserMedia
2)使用 Canvas 拍摄快照

David Walsh's example涵盖了台式机上的两个步骤。

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

10-11 20:20