我开始使用WebRTC开发,但那件事从来没有给我ICE候选人.我设置了所有内容,我正在交换描述和内容,我还在那里缩小了一个超级丑陋的功能,以确保一切都正常运行,一个接一个.信号状态对两者都是稳定的,onError永远不会被触发(如预期的那样),但onIceCandidate也是(不是预期的),当我想发送一个随机的空MediaStream对象时pc1.addStream(new webkitMediaStream());,它总是触发onNegotiationNeeded.
有没有人知道我的代码到底有什么问题?我花了几个小时浏览Stack Overflow,HTML5 Rocks和W3C文档,但我不明白.这是我的整个代码:
var config={
'iceServers':[{
'url':'stun:stun.l.google.com:19302'
},{
'url':'stun:stun1.l.google.com:19302'
},{
'url':'stun:stun2.l.google.com:19302'
},{
'url':'stun:stun3.l.google.com:19302'
},{
'url':'stun:stun4.l.google.com:19302'
}]
};
var pc1=new webkitRTCPeerConnection(config);
var pc2=new webkitRTCPeerConnection(config);
var onError=function(error)
{
console.error(error);
}
pc1.onicecandidate=function()
{
console.log('PC1 onIceCandidate (finally) fired!');
}
pc2.onicecandidate=function()
{
console.log('PC2 onIceCandidate (finally) fired!');
}
pc1.oniceconnectionstatechange=function()
{
console.log('PC1 oniceconnectionstatechange fired!');
}
pc2.oniceconnectionstatechange=function()
{
console.log('PC2 oniceconnectionstatechange fired!');
}
pc1.onnegotiationneeded=function()
{
console.log('PC1 onnegotiationneeded fired!');
}
pc2.onnegotiationneeded=function()
{
console.log('PC2 onnegotiationneeded fired!');
}
pc1.createOffer(function(offer){
pc1.setLocalDescription(offer,function(){
pc2.setRemoteDescription(new RTCSessionDescription(offer),function(){
pc2.createAnswer(function(answer){
pc2.setLocalDescription(answer,function(){ …Run Code Online (Sandbox Code Playgroud)