我正在尝试创建要约,但出现如下所示的不完整sdp-offer

sdp:
"v=0↵o=- 981077471509521330 2 IN IP4 127.0.0.1
↵s=-
↵t=0 0
↵a=msid-semantic: WMS
↵"


我错过了什么。我的代码如下

//适配器部分

window.RTCPeerConnection = window.RTCPeerConnection ||
window.webkitRTCPeerConnection || window.mozRTCPeerConnection;
window.RTCIceCandidate = window.RTCIceCandidate ||
window.mozRTCIceCandidate || window.webkitRTCIceCandidate;
window.RTCSessionDescription = window.RTCSessionDescription ||
window.mozRTCSessionDescription || window.webkitRTCSessionDescription;
window.URL = window.URL || window.mozURL || window.webkitURL;
window.navigator.getUserMedia = window.navigator.getUserMedia ||
window.navigator.webkitGetUserMedia || window.navigator.mozGetUserMedia;


创建SDP流

var iceConfig = {'iceServers': [{ 'url': 'stun:stun.l.google.com:19302' }]};
var pc = new RTCPeerConnection(null);
pc.onicecandidate = function (evnt) {
socket.emit('video', {ice: evnt.candidate, type: 'ice' });
  };
pc.onaddstream = function(evnt) {
 $rootScope.remotestream = evnt.stream;
 $rootScope.$broadcast('remotestream');
};
pc.createOffer(function(offer) {console.log(offer);});

最佳答案

我发现了两件事:


您需要向RTCPeerConnection添加本地流:pc.addStream(localStream);,localStream通常是通过navigator.getUserMedia()获得的
您需要将iceConfig作为第一个参数传递给RTCPeerConnection构造函数


有关更多信息,请参见https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection,尤其是“初始化呼叫”部分。

10-08 13:20