这个项目中有相当多的代码。目前,我没有收到将远程流添加到我的RTCPeerConnection. 此时我不想提供代码示例,而是只想验证我是否采用了有效的方法来设置连接。
getUserMedia()并在成功回调期间RTCPeerConnection创建 ,并且createOffer()。在回调期间,localDescription 设置,这就是开始寻找 ICE 候选者的过程。createAnswer().此时,我的期望是 WebRTC 堆栈将启动底层会话启动,并且两个对等方将获得 addstream 回调来连接视频。这是一个好方法吗?工作流程是否有必要以不同的顺序发生?
WebRTC-internals 日志(感谢@Philipp Hancke)显示以下内容。即使我的代码createAnswer在之后调用setRemoteDescription()
4/12/2015, 6:35:26 PM setRemoteDescription
4/12/2015, 6:35:26 PM createAnswer
4/12/2015, 6:35:26 PM setRemoteDescriptionOnFailure
4/12/2015, 6:35:26 PM createAnswerOnFailure
Run Code Online (Sandbox Code Playgroud)
CreateAnswer can't be called before SetRemoteDescription.
rtcPeer.conn.setRemoteDescription(new RTCSessionDescription(remotePeers[msgObj.peer].sdp));
rtcPeer.conn.createAnswer(createOfferSuccess);
Run Code Online (Sandbox Code Playgroud)
不使用滴流冰将对呼叫建立时间产生非常负面的影响,但这可能是一个问题。您可能希望在步骤 5 中访问对等连接 .localDescription,以便发送包含所有候选人的录用通知。
请注意,您无法在第 8 步中与多个同行共享报价。但听起来您并不打算这样做。实际上,您想在步骤 8 中调用 createAnswer,并在步骤 9 中将其发送给客户端(以及任何ice 候选者)。在步骤 10 中,您在调用者处调用 setRemoteDescription。
这听起来与您所描述的略有不同,这可能解释了为什么您没有获得远程流。确保 createOffer、setLocalDescription、setRemoteDescription 的顺序与您在 chrome://webrtc-internals 中检查时在 apprtc.appspot.com 上看到的顺序相同——调用者不必调用 createAnswer。
| 归档时间: |
|
| 查看次数: |
764 次 |
| 最近记录: |