如果通过createOffer()
请求getUserMedia()
的同伴仅允许音频,是否可以从另一个对等方接收视频和音频?
情景说明:
getUserMedia()
被调用时,选择共享 视频和音频。getUserMedia()
时,仅共享音频。RTCPeerConnection.createOffer()
创建了对等连接。他分享了他的localDescription
,其中包含未提及视频的SDP数据。是否可以创建要求在不共享的情况下接收视频数据的优惠?
答案 0 :(得分:7)
所以关键在于提供优惠。
4.2.5提供/应答选项
这些词典描述了可用于控制商品/答案创建过程的选项。
dictionary RTCOfferOptions { long offerToReceiveVideo; long offerToReceiveAudio; boolean voiceActivityDetection = true; boolean iceRestart = false; };
对于视频:
offerToReceiveVideo of type long
在某些情况下,RTCPeerConnection可能希望接收视频但不发送任何视频。 RTCPeerConnection需要知道它是否应该向远程端发信号是否希望接收视频。此选项允许应用程序在创建商品时指示其对要接收的视频流数量的首选项。
RTCPeerConnection.createOffer()
可以将MediaConstraints
作为可选的第三个参数。
我发现的例子来自WebRTC for Beginners文章:
创建优惠SDP
peerConnection.createOffer(function (sessionDescription) { peerConnection.setLocalDescription(sessionDescription); // POST-Offer-SDP-For-Other-Peer(sessionDescription.sdp, sessionDescription.type); }, function(error) { alert(error); }, { 'mandatory': { 'OfferToReceiveAudio': true, 'OfferToReceiveVideo': true } });
这些MediaContraints
也可以与createAnswer()
一起使用。
答案 1 :(得分:1)