Webrtc:在Firefox中看不到远程流,但在Chrome中工作

Webrtc:在Firefox中看不到远程流,但在Chrome中工作,firefox,webrtc,getusermedia,Firefox,Webrtc,Getusermedia,我最近重组了我的工作webRtc代码,替换了一些不推荐的API和一些其他重组。它继续在Chrome中工作,但不再在Firefox中工作。代码的基本结构如下所示: navigator.mediaDevices.getUserMedia ({ audio: true, video: true }) .then(function(localMediaStream) { //Show local media document.getElementById("myVideoMed

我最近重组了我的工作webRtc代码,替换了一些不推荐的API和一些其他重组。它继续在Chrome中工作,但不再在Firefox中工作。代码的基本结构如下所示:

navigator.mediaDevices.getUserMedia ({ audio: true, video: true })
  .then(function(localMediaStream) {

     //Show local media
     document.getElementById("myVideoMedia").srcObject = localMediaStream;

     //create peerConnection
     peerConnection = new RTCPeerConnection({
       "iceServers": [{"url": "stun:stun.l.google.com:19302"}]
     });

     peerConnection.ontrack = function(event) {
       remoteStream = event.streams[0];
       document.getElementById("remoteVideoElement").srcObject = remoteStream;
     };

      peerConnection.onicecandidate = function (event) {
         if (event.candidate != null) {
           //Send ice candidate to peer connection..
         }  
      };

      peerConnection.addStream(localMediaStream);

      //Show remote media
      document.getElementById("remoteVideoElement").srcObject = remoteStream;

     //If caller, send video invite to callee to do the above in its browser
     //if callee, having received video invite, send message to caller to request sdpOffer


});


//When (on caller's side) request to send sdpOffer is received
 var sdpOffer = new RTCSessionDescription (offer);
 peerConnection.setLocalDescription (sdpOffer)
    .then (function() {
       //send sdpOffer
    });


//When (on callee's side) sdpOffer is received 
peerConnection.setRemoteDescription(remoteSdpOffer)
  .then(function() { 
     peerConnection.createAnswer()
       .then(function(sdpAnswer) {
        var sdpAnswer = new RTCSessionDescription(sdpAnswer);
        //send sdpAnswer 
        peerConnection.setLocalDescription(sdpAnswer)
          .then(function(){
             ...
        })

//When ICE candidate is received
peerConnection.addIceCandidate(new RTCIceCandidate(iceCandidate))
  .then(function() { //console.log("Remote Ice candidate added");
})
.catch(function(err) {...});

无论Firefox浏览器是呼叫者还是被呼叫者,都不会在Firefox中看到远程视频。我怀疑它与事件处理程序的某些顺序有关,但无法找到哪一个

我让它工作了。以上代码没有问题。关于这一点的问题很有帮助。我必须在Firefox中的远程视频元素上执行播放。您可能需要将自动播放添加到视频元素中