Javascript Mozilla Firefox中未触发事件回调

Javascript Mozilla Firefox中未触发事件回调,javascript,firefox,callback,webrtc,dom-events,Javascript,Firefox,Callback,Webrtc,Dom Events,我正在使用WebRTC为音频会议创建一个示例应用程序。我试图做的是创建一个rtpeerconnection对象,并将从调用方收到的远程描述传递给它。设置远程描述后,将为对等连接对象触发“onaddstream”事件,我们可以将远程描述中接收的流设置为某些音频/视频控件,如下面的示例代码所示: function call() { chatHub.server.connect('receiver'); pc2 = new RTCPeerConnecti

我正在使用WebRTC为音频会议创建一个示例应用程序。我试图做的是创建一个
rtpeerconnection
对象,并将从调用方收到的远程描述传递给它。设置远程描述后,将为对等连接对象触发“onaddstream”事件,我们可以将远程描述中接收的流设置为某些音频/视频控件,如下面的示例代码所示:

function call() {        
    chatHub.server.connect('receiver');        
    pc2 = new RTCPeerConnection(null, pcConstraints);
    pc2.onicecandidate = iceCallback2;
    pc2.onaddstream = gotRemoteStream; 
}
function gotDescription1(desc) { 
    var dessc = new RTCSessionDescription({ type: 'offer', sdp: desc });    
    pc2.setRemoteDescription(dessc);
}
function gotRemoteStream(e) { 
    //attaching the stream to UI controls
    audio2 = attachMediaStream(audio2, e.stream);
    audio2.play();  
    pc2.createAnswer(gotDescription2, onCreateSessionDescriptionError,sdpConstraints);
    callButton.disabled = true;
    hangupButton.disabled = false;
}
function gotDescription2(desc) {
    pc2.setLocalDescription(desc);      
}
function iceCallback2(event) {
    //---foo----
}
从示例代码中可以清楚地看到,流程从call方法开始,该方法设置一个
PeerConnection
对象并设置其事件回调,然后由某个代码元素调用
gotDescription1
,现在我们在这里设置remoteDescription,它应该在内部触发
gotdemotestream

除了Firefox之外,所有这些都可以在主要浏览器中正常工作,为object设置了remote description,但对
gotStream
没有回调

检查此项以获取可能的解释

关于onaddstream的说明:

它在远程对等方添加媒体流时被调用。这将仅作为setRemoteDescription的结果触发。Onnaddstream在setRemoteDescription之后尽早发生。此回调不会等待通过SDP协商接受或拒绝给定的媒体流

Firefox目前在协商完成之前不会启动onaddstream;看


在任何情况下,在执行SetLocalDescription()之前,媒体都不应该流动,所以不要让它成为您接受的门户。

您已经问了9个问题,但没有将任何问题标记为已回答。也许您应该这样做,以便从so用户那里获得更多帮助。