Video streaming getlocalmedia成功时需要在ONNEGOTIATE后执行WebRTC处理顺序
当我在启动会话之前(例如,在初始化时)获取usermedia时,让webrtc环境正常运行。但是,当我在会话启动和应答时获得usermedia时,我无法成功地将应答端媒体添加到会话中(即,启动端视频在应答端可见,但应答端视频在启动端不可见)。 我花了很多时间试图处理这件事,但都没有成功,我希望有人能澄清一点,说明处理需要进行谈判的事件的要点 情况如下: A端启动会话,获取用户媒体,一旦用户媒体可用并添加到对等连接,就会生成SDP报价并发送到远程端 B方收到报价,在屏幕上引发铃声类型事件,并在用户决定回答时请求usermedia。getusermedia的成功调用会将localdescription添加到对等连接中,并在某个点上生成OnGetIAtioneded事件 所有这些似乎都发生得很好(例如,在B侧-通过信令信道提供和候选,然后添加远程提供、远程流等) 但是,我不清楚应答方是否应该在重新协商后(即,在处理onnegotiationneeded事件时)生成SDP应答或SDP报价 另外,在发送回SDP应答之前,最好等待getusermedia返回成功,还是应该基于发起方的SDP提议发送SDP应答,而不等待本地usermedia,然后在需要的OnGotiationNeeded之后发送另一个SDP(例如,根据上一段的提议或应答)Video streaming getlocalmedia成功时需要在ONNEGOTIATE后执行WebRTC处理顺序,video-streaming,webrtc,sdp,Video Streaming,Webrtc,Sdp,当我在启动会话之前(例如,在初始化时)获取usermedia时,让webrtc环境正常运行。但是,当我在会话启动和应答时获得usermedia时,我无法成功地将应答端媒体添加到会话中(即,启动端视频在应答端可见,但应答端视频在启动端不可见)。 我花了很多时间试图处理这件事,但都没有成功,我希望有人能澄清一点,说明处理需要进行谈判的事件的要点 情况如下: A端启动会话,获取用户媒体,一旦用户媒体可用并添加到对等连接,就会生成SDP报价并发送到远程端 B方收到报价,在屏幕上引发铃声类型事件,并在用户
在一个有点相关的问题上,PRAnswer实际使用的是什么?我在消息跟踪中没有看到这种情况。在收到报价时,B方需要给出答案,而不是报价 边B在回答过程中不应该重新谈判,因为它已经在谈判的中间。换句话说,您不希望在回答时触发所需的
negotiationneeded
你说“谈判需要”在B方开火。这很糟糕
它开火可能有三个原因,如果没有代码,我无法判断是哪一个原因:
setRemoteDescription
之前,您正在添加流
报价negotiationneeded
仅在信号状态
为“稳定”
(即不协商)时触发,但在当时本地描述
时不触发
因此,请确保您正在做三件事:
getUserMedia
流之前,请调用setRemoteDescription(offer)
createOffer
一起使用negotiationneeded
,因为它似乎有一个在“稳定”
状态之外触发的bug,这种情况下会发生addStream in have-remote-offer
checking
connected
addStream in have-remote-offer
onnegotiationneeded fired in have-remote-offer
checking
connected
而在Chrome 45中,您将看到:
addStream in have-remote-offer
checking
connected
addStream in have-remote-offer
onnegotiationneeded fired in have-remote-offer
checking
connected
因为虫子
即使您的答案轨道较少,协商仍将完成,因此,如果您想快速回答,这是一种方法(但稍后添加媒体时,您需要重新协商)
PRAnswer
在任何浏览器中都不会实现。我认为在创建答案SDPThanks之前,您应该将本地流添加到PeerConnection中,非常感谢。事实上,我正在使用chrome,我确实看到addstream中有远程提供,然后启动onegotiationneeded。然后,假设我在没有获得B侧的本地媒体的情况下进行应答,连接将进入稳定状态,然后我在B侧获得本地媒体并想要更新会话,我假设在这种情况下,B方将发送一份新的报价(而不是第二份答复,因为状态稳定)。