localmedia访问受限,直到用户与firefox中的页面进行交互

问题描述 投票:3回答:1

我已经允许在我的域中使用麦克风。我们在多个标签中使用我们的域名。当我在同一个标​​签中访问时,我能够获取本地媒体(麦克风)。但是,如果没有访问选项卡,我无法在其他选项卡(同一个域)中获取WebRTC的本地媒体。只有在访问选项卡后才能获取本地媒体访问权限。

是否故意为安全和隐私做? 。有什么方法可以解决我的问题吗?

原因:限制用于WebRTC会话的资源。我们将WebRTC会话保留在我们域的单个选项卡中,并仅使用该资源为所有选项卡进行调用。

尝试设置麦克风 - 允许作为iframe属性。但它没有解决问题。它在GoogleChrome浏览器中工作正常。如果我打开一个新选项卡(T1)并在其中启动webrtc并从另一个选项卡(T2)进行webrtc调用而不访问选项卡T1,则呼叫以chrome连接但不在firefox中连接,除非我访问T1。

注意:它不会要求允许在域中使用麦克风,而是自动获取麦克风。只是在我访问标签后才获取。我已经为我的域提供了麦克风访问权限。

javascript firefox webrtc media
1个回答
2
投票

是否故意为安全和隐私做?

是的,这是为了防止背景标签无法打开相机或麦克风,以窥探用户。因为那令人毛骨悚然。我相信Safari的工作方式相同。

getUsermedia specification最近提出这个要求:

  • 步骤6.1。 “用户代理必须等待进入下一步,直到当前设置对象的负责文档完全处于活动状态且具有焦点。”*

所以我希望Chrome很快就会效仿。

有什么方法可以解决我的问题吗?

这将极大地打败了这一保证。

用户可以放心,只有当前关注的标签才能打开相机或麦克风。

如果我打开一个新选项卡(T1)并在其中启动webrtc并从另一个选项卡(T2)进行webrtc调用而不访问选项卡T1,则呼叫以chrome连接但不在firefox中连接,除非我访问T1。

这是一个RTCPeerConnection连接问题,它与getUserMedia是分开的。

解决方法是不阻止在麦克风访问上建立连接。

没有理由你不能先连接并稍后添加麦克风。

或者提前获得麦克风,然后再连接。基本上,这两个动作不需要相互重合或阻塞。


推荐问答