在站点中导航时保持WebRTC视频流处于活动状态

我正在寻找保持WebRTC视频流+流控件(挂断,静音等)已加载并处于活动状态的最佳方法,即使用户通过导航菜单导航到另一个子页面也是如此。 我想到了以下方法,但是我不知道这是否是最实用的方法,或者现在是否有更好的解决方案:我只是用导航菜单包装,然后将iFrame放在当前内容所在的位置。视频流本身将进入菜单栏本身(它是一个侧边栏,其宽度足以执行类似的操作),当用户单击菜单项时,iFrame src将替换为新的URL。 这是正确的方法吗?但是,如果是这样,由于到目前为止我还没有使用iFrame,因此我还有其他一些担忧:

  1. 使用iFrame时,浏览器功能是否存在任何缺陷?例如,我知道Chrome会要求您将多个功能放入iFrame的allow属性中,例如在使用摄像头,麦克风或用户位置时。在iFrame中我绝对无法做任何事情吗?
  2. iFrame是否与“主”包装器共享(PHP)会话和cookie,还是那些单独的会话?
  3. 也许我最担心的是:包装器和iFrame的JavaScript代码如何相互通信?例如,如何从iFrame内向包装器中的视频流发送挂断信号?

感谢任何提示!

b454545 回答:在站点中导航时保持WebRTC视频流处于活动状态

iframe可以正常工作。

  

使用iFrame时,浏览器功能是否存在缺点?

主要问题是,在加载iframe时,您实际上无法控制页面的显示。例如,当上一页被撕毁并被替换时,用户可能会看到短暂的纯白色瞬间。

  

在iFrame中我绝对不能做任何事情吗?

iframe非常灵活。请记住,它们具有自己的JavaScript上下文,因此需要编写一些额外的代码来来回移动数据。

  

iFrame是否与“主”包装器共享(PHP)会话和cookie

  

包装程序和iFrame的JavaScript代码如何相互通信?

实际上,您可以从外部iframe访问iframe的Document对象。 (当然,假设它们来自同一原点。)

const iframe = document.querySlector('iframe');
iframe.contentDocument.querySelector('body').whateveryouwant

也许最好的方法是使用postMessage API。这样,您就可以以一种很好的隔离方式按需来回发送数据。

https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

本文链接:https://www.f2er.com/3149670.html

大家都在问