我制作了简单的WebRTC应用程序,我认为我了解WebRTC框架。我想为我的应用添加新功能,只允许一个用户共享音频/视频,而第二个用户不共享视频和音频。
我该怎么做?标准机制会有什么区别?
答案 0 :(得分:2)
为此,标准机制没有区别。在为getUserMedia()
指定约束时,您可以指定{video: false}
或{audio: true}
。我认为您至少需要音频,视频或数据才能创建SDP优惠。如果没有,那么只需创建一个SDP答案而不附加任何流。
连接后,您只需使用MediaStream的getAudioTracks()
/ getVideoTracks()
停用流的音频/视频曲目即可。每个轨道都有enabled
属性,可以设置为true或false。
答案 1 :(得分:1)
请勿获取MediaStream
,也不要为您不想分享其视频/音频的用户拨打peerConnection.addStream()
。
如果你这样做有一个条件。
您必须将此约束添加到peerConnection.createOffer
火狐:
{ offerToReceiveVideo: true, offerToReceiveAudio: true }
铬:
{mandatory: { OfferToReceiveAudio: true, OfferToReceiveVideo: true }}
您应该在创建商品时提供此约束,因为默认情况下,它会提供仅接收您添加的流。
答案 2 :(得分:0)
要动态决定谁只发送媒体并且只接收媒体,你可以使用SDP属性a = sendonly,a = recvonly用于相应的媒体发信号或在双方之间协商。