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

Affectiva Unity SDK是否支持WebGL构建?WebGL部署摄像头异常求助

嘿,我之前也碰到过类似的Unity WebGL + Affectiva SDK摄像头启动失败的问题,尤其是在Firefox环境下,给你几个实用的排查和解决方向:

解决Unity WebGL版本EmoSurvival摄像头无法启动的问题

1. 先搞定浏览器权限与HTTPS要求

  • Firefox对摄像头访问的安全限制很严格:除了localhost本地测试,非HTTPS环境会直接拦截摄像头请求。如果是部署到远程服务器,必须确保站点启用HTTPS协议。
  • 哪怕是localhost测试,也要确认Firefox没自动锁权限:点击地址栏左侧的锁图标,检查「相机」权限是否设为「允许」,如果是「阻止」就改成允许后刷新页面。

2. 核对Affectiva SDK的WebGL专属配置

  • 打开Unity项目,找到Affectiva的配置脚本(通常叫AffectivaConfig),确保WebGL平台的摄像头捕获模式已正确启用。部分SDK版本中,WebGL需要单独适配浏览器的MediaDevices API,而不是用PC端的捕获逻辑。
  • 切换到WebGL平台后,重新导入Affectiva的WebGL专用资源包(如果SDK分平台提供的话),避免把PC版本的冗余资源打包进去导致冲突。

3. 给Unity WebGL加个用户交互触发权限的逻辑

浏览器要求摄像头权限请求必须由用户主动操作触发(比如点击按钮),不能在游戏加载完成后自动执行,否则会被拦截。你可以在游戏开头加个启动按钮,点击后再初始化Affectiva的检测:

public void StartEmotionDetection()
{
    // 先触发摄像头权限请求
    WebCamTexture webcam = new WebCamTexture();
    webcam.Play();
    // 再初始化Affectiva SDK
    AffectivaManager.Instance.StartDetection(webcam);
}

4. 针对控制台日志的常见错误排查

你提到控制台有报错,虽然没贴具体内容,但这类问题常见的错误类型对应解决方法:

  • NotAllowedError:权限被阻止,回到第一步检查浏览器权限设置
  • NotFoundError:没有可用摄像头,或者摄像头被其他应用占用
  • TypeError:Affectiva SDK的WebGL脚本兼容性问题,建议更新到最新版本的SDK,或者检查是否缺失了Unity WebGL所需的JS插件

5. Firefox专属的兼容性调整

  • 输入about:config打开Firefox配置页,搜索media.navigator.enabled和media.navigator.permission.disabled,确保前者设为true,后者设为false
  • 把Firefox更新到最新版本,旧版本对WebRTC(摄像头捕获依赖的技术)支持可能存在bug

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:33:06