0

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

错误如下:在此处输入图像描述

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

这是客户端离开呼叫后取消屏幕共享的代码:

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

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

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

感谢大家的阅读,如果我没有问清楚,对不起,这是我的第一个问题。

4

1 回答 1

0

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

于 2017-09-14T05:05:32.600 回答