【问题标题】:WebRTC screen sharing more than once without reloading pageWebRTC 屏幕共享不止一次而无需重新加载页面
【发布时间】:2017-09-14 13:05:32
【问题描述】:

您好,我目前正在开发一个 webRTC 应用。它是一个“视频顾问”,客户与卖家进行视频通话,现在我希望卖家也分享他们的屏幕(不会丢失视频通话)。我设法让它一起工作,但是当客户完成通话并且新客户到达时,当卖家尝试再次共享他的屏幕(与这个新客户)时会发生错误。

报错如下:enter image description here

我认为问题在于屏幕共享API不支持在不刷新窗口的情况下结束和重新打开屏幕共享(这就是我想要的,让卖家在完成通话后保持在线并收听而不刷新整个页)。

这是在客户离开通话后取消屏幕共享的代码:

if(yourConn.getLocalStreams()[1] != null){ 
      var screenStreaming = yourConn.getLocalStreams()[1];
      yourConn.removeStream(screenStreaming);
      screenStreaming.getTracks().forEach(track => track.stop());
} 

我知道此代码成功停止屏幕共享,但我不明白为什么当我创建新的屏幕共享流时,会出现我发布的错误。我真的需要帮助。

顺便说一句,我正在使用 Chrome。

感谢大家的阅读,如果我没有问清楚,很抱歉,这是我的第一个问题。

【问题讨论】:

    标签: google-chrome webrtc screensharing


    【解决方案1】:

    启动和停止屏幕共享当然可以不止一次。 InvalidStateError 听起来(模糊地)就像您试图重用来自 chromeMediaSourceId 多次传递的 chooseDesktopMedia 中的 id。这是不可能的 afaik,您需要再次调用 chooseDesktopMedia(并让用户再次选择屏幕)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多