【问题标题】:Webcam js Error in Chrome: Could not access webcamChrome中的网络摄像头js错误:无法访问网络摄像头
【发布时间】:2015-12-04 06:03:06
【问题描述】:

我在我的一个项目中使用 Webcam JS。

https://github.com/jhuckaby/webcamjs

我使用的版本:1.0.0 可用的最新版本:1.0.5

它在 Chrome 和 Firefox 中都运行良好。但最近网络摄像头错误开始仅在 CHROME 中显示。 Firefox 仍然可以正常工作。

我在 1.0.0 中收到的错误:Webcam.JS Error: cannot access webcam.

我升级了版本,现在我在 chrome 中遇到的错误是

Webcam.js Error: Could not access webcam.
Permission Error: Only secure origins are allowed

https://www.chromium.org/Home/chromium-security/prefer-secure-origins-for-powerful-new-features

我的网站有一个安全的来源。

谁能告诉我为什么我会遇到这样的错误?

我认为复制粘贴 webcam.js 代码没有意义。

这是我使用的代码:

Webcam.set({
      width: 320,
     height: 240,
     dest_width: 320,
     dest_height: 240,
     image_format: 'jpeg',
     jpeg_quality: 90,
     force_flash: false
    });
    Webcam.attach( '#my_camera' );

【问题讨论】:

标签: javascript google-chrome webcam webcam.js


【解决方案1】:

Chrome 47 要求网站为 HTTPS 才能使用户媒体/网络摄像头正常工作!这是一个全新的要求,我没想到会出现......

有关该主题的 Chromium 文档: https://www.chromium.org/Home/chromium-security/prefer-secure-origins-for-powerful-new-features

这意味着我必须购买 SSL 证书。只要您在 127.0.0.1 或 HTTPS 上使用该库,该库就应该在 Chrome 47 中正常工作。

Issue Discussion

Solution

【讨论】:

  • 我的 Chrome 版本为 54.0.2840.99 m,但我的网站不是 https。 webcamjs 加载为 html5,而不是 flash。
【解决方案2】:

您可以允许特定站点或端口:

要忽略 Chrome 的安全来源政策,请按以下步骤操作。

  • 在 Chrome 中导航到 chrome://flags/#unsafely-treat-insecure-origin-as-secure

  • 找到并启用Insecure origins treated as secure 部分(见下文)。

  • 添加您想要忽略其安全源策略的任何地址。记住也要包括端口号(如果需要)。

  • 保存并重新启动 Chrome。

See here!

【讨论】:

  • 这对我有用。因为我需要为我们的内部软件访问网络摄像头。但我不建议大型客户使用。对于大规模,我建议购买 ssl 证书。
  • 也为我工作。对于我们的本地网络网络应用程序。
【解决方案3】:

如果您还不能提供安全连接,您所能做的就是使用备用闪存。使用该库中的配置代码:

 Webcam.set({
        force_flash: true
 });

【讨论】:

    【解决方案4】:
    Webcam.set({
        width: 500,
        height: 400,
        image_format: "jpeg",
        jpeg_quality: 90,
        force_flash: false,
        flip_horiz: true,
        fps: 45
    });
    
    Webcam.set("constraints", {
        optional: [{ minWidth: 600 }]
    });
    

    【讨论】:

      【解决方案5】:

      我也遇到了这个错误。

      解决方案:

      确保您的网站是安全的。通过https 协议访问它。

      例子:

      使用

      https://example.azurewebsites.net/ 
      

      代替

      http://example.azurewebsites.net/
      

      【讨论】:

        【解决方案6】:

        对于此类问题,还有另一种方法在开发过程中对我有所帮助,并且可能对其他人有所帮助。解决方案是将谷歌浏览器的版本降级到第 46 版。

        以下是基本步骤: - 关闭 Google Chrome 中的更新

        • 转至 C:\Program Files\Google\Chrome\Application 或浏览器的安装目录。

        • 您会发现 2 个不同的文件:chrome.exe 和 old_chrome.exe。将 chrome.exe 重命名为任何其他名称,然后将 old_chrome.exe 重命名为 chrome.exe

        • 启动谷歌浏览器

        您可以在这里找到更详细的说明:http://ipswitchft.force.com/kb/articles/FAQ/How-to-downgrade-to-an-Older-version-of-Chrome

        【讨论】:

        • 此方法仅在开发阶段有用。如果项目正在运行并且客户面临问题怎么办?我们不能告诉他们降级,因为他们可能很难消化这些东西。
        • 然后你可以将项目转移到https
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-17
        • 1970-01-01
        • 1970-01-01
        • 2010-11-18
        • 1970-01-01
        • 1970-01-01
        • 2011-06-12
        相关资源
        最近更新 更多