【问题标题】:WebRTC - stream only from one peerWebRTC - 仅来自一个对等方的流式传输
【发布时间】:2015-12-15 12:05:12
【问题描述】:

我制作了简单的 WebRTC 应用程序,我认为我了解 WebRTC 框架。我想为我的应用添加新功能,该功能仅允许一个用户共享音频/视频,而第二个用户不共享视频和音频。

我该怎么做?标准机制有何不同?

【问题讨论】:

标签: html webrtc getusermedia


【解决方案1】:

为此,标准机制没有区别。在为getUserMedia() 指定约束时,您可以指定{video: false}{audio: true}。我认为您至少需要音频、视频或数据来创建 SDP 报价。如果没有,那么只需创建一个 SDP 答案而不附加任何流。

连接后,您可以使用MediaStreamgetAudioTracks()/getVideoTracks() 简单地禁用流的音频/视频轨道。每个轨道都有enabled 属性,可以设置为真或假。

【讨论】:

  • 不分享视频的一方根本不需要创建信息流或优惠。一方打开媒体流并创建报价就足够了,另一方只需响应报价。如果您确实需要一些东西来响应报价,只需打开一个数据通道。
  • 我修改了答案以反映您的评论。谢谢!
【解决方案2】:

不要为您不想分享其视频/音频的用户拨打MediaStream,也不要拨打peerConnection.addStream()

如果你这样做,有一个条件。 您必须将此约束添加到peerConnection.createOffer

火狐:

{ offerToReceiveVideo: true, offerToReceiveAudio: true }

铬:

{mandatory: { OfferToReceiveAudio: true, OfferToReceiveVideo: true }}

您应该在创建报价时给出此约束,因为默认情况下它将报价仅接收您添加的流。

【讨论】:

    【解决方案3】:

    要动态决定谁将只发送媒体和只接收媒体,您可以使用 SDP 属性 a=sendonly, a=recvonly 为相应的媒体发出信号或在两方之间协商。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-05
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多