是否可以接收来自另一个对等体的视频和音频,如果通话的对等方createOffer()仅在通过请求时允许音频getUserMedia()?
方案说明:
getUserMedia()被调用时,选择共享双方的视频和音频.getUserMedia()被呼叫时,仅共享音频.RTCPeerConnection.createOffer().他分享了他的localDescription包含没有提及视频的SDP数据.是否可以创建要求接收视频数据而不共享的要约?
所以关键在于提供优惠.
4.2.5提供/应答选项
这些词典描述了可用于控制商品/答案创建过程的选项.
Run Code Online (Sandbox Code Playgroud)dictionary RTCOfferOptions { long offerToReceiveVideo; long offerToReceiveAudio; boolean voiceActivityDetection = true; boolean iceRestart = false; };
在视频的情况下:
Run Code Online (Sandbox Code Playgroud)offerToReceiveVideo of type long在某些情况下,RTCPeerConnection可能希望接收视频但不发送任何视频.RTCPeerConnection需要知道它是否应该向远程端发信号是否希望接收视频.此选项允许应用程序在创建商品时指示其对要接收的视频流数量的首选项.
RTCPeerConnection.createOffer()可以MediaConstraints作为可选的第三个参数.
我找到的例子来自WebRTC for Beginners文章:
创建优惠SDP
Run Code Online (Sandbox Code Playgroud)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().