javascript - 如何使用javascript访问移动设备相机?

标签 javascript web-applications camera

我想写一个网络应用程序(html+css+javaScript),当它在带有摄像头的设备(比如手机)上运行时,应该能够将这个摄像头用作条码扫描器。我知道有条形码阅读器库,但我想尝试编写自己的扫描器。 (因为我想详细了解它是如何工作的。)

加载网络应用后,用户应允许该应用使用摄像头。但是其他一切都应该在没有用户交互的情况下工作,即在允许使用相机后必须不需要点击任何按钮。用户的下一个工作是将相机对准条形码,直到他按下完成按钮或直到他关闭浏览器。但是在扫描时,不需要敲击。

我的应用程序应该经常从相机视频流中拍摄照片。这样的快照不打算显示(用户可以直接从摄像头观看视频流),也不打算存储在任何地方。它必须在 javaScript 中作为位图提供,即二维数组,其中此数组中的每个项目都包含单个像素的 RGB 值。

当脚本收到这样的数组时,它会对其进行分析并尝试识别条形码。如果代码被成功识别,则该代码被发送到服务器。然后应该拍摄下一张快照。此外,如果找不到代码,则应拍摄新的快照。这将无限重复,直到用户退出扫描。

很高兴拥有:
我不需要相机能够看到的全屏区域。我只需要一个小的矩形剪裁(例如 640x320 像素)。

我知道您可以使用此 html 片段将视频上传到服务器

<form action="server.cgi" method="post" enctype="multipart/form-data">
  <input type="file" name="video" accept="video/*" capture>
  <input type="submit" value="Upload">
</form>

但我不知道这能如何帮助我解决我的问题。你能帮帮我吗?

(我不知道这是否有所不同,但我使用 jQuery。)

最佳答案

看看 getUserMedia API ,它允许您提示用户允许纯粹通过 JS 在网络上使用他们设备的相机。然后,您可以将输入作为流进行操作。

请注意,iOS 仍然不支持此功能,唯一真正的替代方法是要求用户使用文件上传/blob 拍摄照片,然后在该图像中搜索条形码。

编辑:链接到none deprecated method

关于javascript - 如何使用javascript访问移动设备相机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41641931/

相关文章:

Javascript SonarQube 重构此功能以降低其认知复杂性

ios - Swift WKWebView 加载本地文件无法在设备上运行

android - 尽管在 2.X 中指定了 MediaStore.EXTRA_OUTPUT,但从相机中检索到的小图片

javascript - setInterval() 函数不起作用

javascript - Meteor - 加载/刷新页面时出错 : Exception from Tracker afterFlush function: undefined

javascript - 您如何保护网页免受慢速广告跟踪网络信标的影响?

android - 用于移动和 Web 应用程序的服务器

Safari 中的 iOS 虚拟键盘 : Change "Go" to "Enter"

java - 第一人称相机胶卷

ios - 如何获得相机Objective-C的分辨率?