You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo 11中使用Quagga.js无法调用摄像头问题排查

HTTPS部署下Web应用无法访问摄像头的排查与解决

可能原因及修复步骤

1. 证书信任问题

浏览器对摄像头这类敏感权限的校验严格,自签证书默认不被信任,即使Nginx配置了HTTPS,浏览器仍会判定环境不安全,拒绝权限请求。

  • 操作:将你的自签证书导入浏览器的「受信任的根证书颁发机构」。以Chrome为例:设置→隐私和安全→安全→管理证书→导入证书并选择对应存储区域。
  • 验证:访问网站时,地址栏应显示「安全」标识(localhost下自签证书需手动信任后才会显示)。

2. Nginx SSL配置不完整

你当前注释掉了部分SSL核心配置,可能导致浏览器与服务器的SSL兼容性问题:
取消注释以下配置,完善SSL连接设置:

ssl_session_cache    shared:SSL:1m;
ssl_session_timeout  5m;

ssl_ciphers  HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers  on;

3. 后端未正确识别HTTPS协议

从配置日志路径看你使用的是Odoo,若后端未识别到HTTPS请求,会影响敏感权限的校验:
在Odoo的配置文件中添加:

proxy_mode = True

此配置会让Odoo信任Nginx传递的X-Forwarded-Proto头,正确识别请求为HTTPS。

4. 前端权限请求逻辑错误

浏览器禁止自动触发敏感权限请求,必须由用户主动交互(如点击按钮)发起:
示例正确的摄像头请求代码:

document.getElementById('start-camera-btn').addEventListener('click', async () => {
  try {
    const videoStream = await navigator.mediaDevices.getUserMedia({ video: true });
    // 绑定到video标签或处理流
    document.querySelector('video').srcObject = videoStream;
  } catch (error) {
    console.error('摄像头访问失败:', error.message);
  }
});

5. 浏览器权限与硬件占用

  • 检查网站权限:点击地址栏左侧锁图标→网站设置→摄像头,确认设置为「允许」。
  • 关闭其他占用摄像头的应用,避免硬件冲突。

内容的提问来源于stack exchange,提问作者Doni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 20:55:07