目前,我正在尝试做一些非常简单的事情(嗯,实际上我认为这很简单...):我想在网络应用程序中从网络摄像机拍摄照片。
我偶然发现了两种可能性:
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样式后的外观:
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/