Twilio 视频通话:仅 chrome 权限被拒绝

Twilio video calls: Permission denied in chrome only

我正在尝试使用 Twilio 实现视频通话。后端成功生成令牌,我正在使用它建立视频通话。在请求从浏览器访问麦克风和摄像头的权限后,我在 chrome 中收到以下错误:

Error with Feature-Policy header: Unrecognized feature: 'speaker'.

log.js:138 2020-09-08 16:12:12.867Z | WARN in [createLocalTracks #1]: Call to getUserMedia failed: DOMException: Permission denied

运行

 useEffect(() => {
    isWebRtcSupported();
      createRoom().then(response => {
        Video.connect(response.data.token)
          .then(room => {
            setCreatedRoomId(response.data.room);
            setRoomData(room);
            room.on('participantConnected', participantConnected);
            room.on('participantDisconnected', participantDisconnected);
            room.participants.forEach(participantConnected);
          })
          .catch(err => setError(error)));
    }

我正在使用 twilio-video 进行连接。在 Firefox 和 Safari 以及本地主机上的任何浏览器(在任何浏览器中)中连接成功。在浏览器中重置权限没有帮助,已授予 Chrome 中的权限。能否请您提示一下可能会出现什么问题?

所以,问题出在 Feature-Policy 的 back-end 部分。 Back-end代码是使用JHipster生成的,它包含以下代码:

.featurePolicy("geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope 'none';

所以基本上禁止使用麦克风和摄像头。将 none 更改为 * 解决了问题,浏览器能够访问音频和视频流。 有趣的是,Mozilla 和 Safari 似乎忽略了这些指令,因为在这些浏览器中一切正常,政策没有任何变化。