首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WebRTC:如何在offer和answer之后添加流?

WebRTC:如何在offer和answer之后添加流?
EN

Stack Overflow用户
提问于 2013-04-15 20:20:58
回答 3查看 12.3K关注 0票数 27

我正在处理webRTC视频通话。我成功地实现了datachannel。现在,我想将视频流添加到相同的对等连接。

我已经读到,流应该添加在回答和提供之前。有没有一种方法可以在回答或提供之后添加流?

如果我在offer或answer之前添加了流,我如何停止流并在需要时重新启动它?

维护这么多流会有什么问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-09 19:24:11

要在创建完整信令后添加流,对等连接应使用流重新协商。

代码语言:javascript
运行
复制
pc1.addstream(stream)

然后再次创建offer并将其发送给其他Peer。

远程对等点将添加流并发送应答SDP。

要停止流:

代码语言:javascript
运行
复制
stream.stop();
pc1.removeStream(stream);
票数 18
EN

Stack Overflow用户

发布于 2014-02-07 02:57:19

根据我的经验,Konga Raju的建议并不管用。我不能发送一个“更新的报价”并且让视频流真正发生。

我发现这个事件序列适用于我的情况,在这种情况下,我希望将视频从对等体1流式传输到对等体2。

  1. 为对等体设置了某种交换消息的方式。(遗憾的是,人们如何实现这一点的差异使得不同的WebRTC代码样本如此难以度量。)
  2. 在每一端都为重要的信令事件设置了处理程序。(有些人报告说,您需要在特殊时间创建这些处理程序,但我还没有发现是这样的。)

有3个基本事件:

  • a ice候选从对方发送==> call addIceCandidate with it
  • an offer message ==> SetRemoteDescription & make an answer & send it
  • an answer message ===> SetRemoteDescription ice

在每一端,使用我们关心的事件处理程序创建peerconnection对象: onicecandidate、

  1. 、onaddstream等。
    • ice候选从peerconnection对象中弹出===>将其发送到其他peerconnection

  1. 当两个对等点都存在并且所有处理程序都已就位时,对等点1会收到某种触发消息,以启动视频捕获( getUserMedia调用)
  2. 一旦getUserMedia成功,我们就有了一个流。在对等连接对象上调用addStream
  3. 然后对等1发出一个
  4. 由于我们之前设置的处理程序,对等2发送一个带有这个(并且相当不透明)的answer
  5. Concurrently,对等连接对象开始产生ice候选对象。它们在两个对等体之间来回发送和处理(步骤2和3由于两个条件的结果,步骤2和3 above)
  6. Streaming本身启动:
    • offer/answer handled

  • ice candidates已接收、交换和交换

我还没有找到在步骤9之后添加视频的方法。当我想要更改某些内容时,我会返回到步骤3。

票数 14
EN

Stack Overflow用户

发布于 2015-08-13 13:57:19

MediaStream应该先添加到对等连接中,然后才能交换报价、答案、候选人。如果调用了onAddStream(),这意味着您正在接收远程视频。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16015022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档