您好我正在开发一个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。
感谢大家的阅读,如果我不清楚,请对不起,这是我的第一个问题。
答案 0 :(得分:0)
启动和停止屏幕共享肯定不止一次。 InvalidStateError听起来(模糊地),就像你试图重复使用chromeMediaSourceId中传递的chooseDesktopMedia中的id一样多次。这是不可能的afaik你需要再次调用chooseDesktopMedia(并让用户再次选择屏幕)