我们如何知道webRTC何时已经完成收集ICE候选人
我正在使用WebRTC连接Kurento媒体服务器(5.x版) 初始化期间,kurento utils js库中的简化代码如下所示:我们如何知道webRTC何时已经完成收集ICE候选人,webrtc,kurento,Webrtc,Kurento,我正在使用WebRTC连接Kurento媒体服务器(5.x版) 初始化期间,kurento utils js库中的简化代码如下所示: if (!this.pc) { this.pc = new RTCPeerConnection(server, options); } var ended = false; pc.onicecandidate = function(e) { // candidate exists in e.candidate if (e.candidat
if (!this.pc) {
this.pc = new RTCPeerConnection(server, options);
}
var ended = false;
pc.onicecandidate = function(e) {
// candidate exists in e.candidate
if (e.candidate) {
ended = false;
return;
}
if (ended) {
return;
}
var offerSdp = pc.localDescription.sdp;
console.log('ICE negotiation completed');
self.onsdpoffer(offerSdp, self);
ended = true;
};
我的问题是,它似乎在等待,直到onicecandidate
传递“null”值,该值表示过程已结束,因此能够继续创建SDP报价,但我在WebRTC规范中找不到这种行为
我的下一个问题是,我们如何才能知道找到ice候选人的过程已经结束
我办公室的一台电脑无法访问代码
console.log(“ICE协商完成”)未传递代码>作为空值。您可以检查iceGatheringState属性(在chrome中运行):
var-config={'iceServers':[{url:'stun:stun.l.google.com:19302'}];
var pc=新的WebKitRTPeerConnection(配置);
pc.onicecandidate=函数(事件){
if(event&&event.target&&event.target.iceGatheringState==='complete'){
警报(“收集候选人完成-获取ICEGartingState完成”);
}else if(event&&event.candidate==null){
警报('完成收集候选对象-获取空候选对象');
}否则{
日志(event.target.iceGatheringState,事件);
}
};
pc.createOffer(功能(提供){
pc.setLocalDescription(报价);
},函数(err){
控制台日志(err);
},{'mandatory':{'OfferToReceiveAudio':true});
window.pc=pc代码>您可以检查iceGatheringState属性(在chrome中运行):
var-config={'iceServers':[{url:'stun:stun.l.google.com:19302'}];
var pc=新的WebKitRTPeerConnection(配置);
pc.onicecandidate=函数(事件){
if(event&&event.target&&event.target.iceGatheringState==='complete'){
警报(“收集候选人完成-获取ICEGartingState完成”);
}else if(event&&event.candidate==null){
警报('完成收集候选对象-获取空候选对象');
}否则{
日志(event.target.iceGatheringState,事件);
}
};
pc.createOffer(功能(提供){
pc.setLocalDescription(报价);
},函数(err){
控制台日志(err);
},{'mandatory':{'OfferToReceiveAudio':true});
window.pc=pc代码>
4.3.1
“如果ICE代理的目的是通知脚本:
[……]
- 收集过程已经完成
将连接的ice收集状态设置为completed,并将newCandidate设置为null。“
因此,您可以根据“已完成”(在现实生活中,这不是非常可靠)检查冰收集状态,或者等待空候选(超级可靠)。
4.3.1
“如果ICE代理的目的是通知脚本:
[……]
- 收集过程已经完成
将连接的ice收集状态设置为completed,并将newCandidate设置为null。“
因此,您可以根据“已完成”检查集冰状态(在现实生活中,这不是非常可靠),或者等待空候选集(超级可靠)。在哪个设置未完成?我们已经使用该库一年多了,以前从未见过。在任何情况下,KMS6都使用涓流冰,所以升级可能比尝试修复要好。哪个安装程序没有完成?我们已经使用该库一年多了,以前从未见过。在任何情况下,KMS6都使用涓流冰,因此升级可能比尝试修复要好。该库正在等待一个空候选,所以奇怪的是它没有得到该候选…该库正在等待一个空候选,所以奇怪的是它没有得到该候选…我认为在FF中这不是很可靠,至少在一些版本之前。我认为在FF中这不是很可靠,至少在一些版本之前。