【发布时间】:2015-12-15 12:05:12
【问题描述】:
我制作了简单的 WebRTC 应用程序,我认为我了解 WebRTC 框架。我想为我的应用添加新功能,该功能仅允许一个用户共享音频/视频,而第二个用户不共享视频和音频。
我该怎么做?标准机制有何不同?
【问题讨论】:
标签: html webrtc getusermedia
我制作了简单的 WebRTC 应用程序,我认为我了解 WebRTC 框架。我想为我的应用添加新功能,该功能仅允许一个用户共享音频/视频,而第二个用户不共享视频和音频。
我该怎么做?标准机制有何不同?
【问题讨论】:
标签: html webrtc getusermedia
为此,标准机制没有区别。在为getUserMedia() 指定约束时,您可以指定{video: false} 或{audio: true}。我认为您至少需要音频、视频或数据来创建 SDP 报价。如果没有,那么只需创建一个 SDP 答案而不附加任何流。
连接后,您可以使用MediaStream 的getAudioTracks()/getVideoTracks() 简单地禁用流的音频/视频轨道。每个轨道都有enabled 属性,可以设置为真或假。
【讨论】:
不要为您不想分享其视频/音频的用户拨打MediaStream,也不要拨打peerConnection.addStream()。
如果你这样做,有一个条件。
您必须将此约束添加到peerConnection.createOffer
火狐:
{ offerToReceiveVideo: true, offerToReceiveAudio: true }
铬:
{mandatory: { OfferToReceiveAudio: true, OfferToReceiveVideo: true }}
您应该在创建报价时给出此约束,因为默认情况下它将报价仅接收您添加的流。
【讨论】:
要动态决定谁将只发送媒体和只接收媒体,您可以使用 SDP 属性 a=sendonly, a=recvonly 为相应的媒体发出信号或在两方之间协商。
【讨论】: