【问题标题】:my webRTC implements never calls onaddstream我的 webRTC 实现从不调用 onaddstream
【发布时间】:2013-07-08 14:30:37
【问题描述】:

我正在使用https://github.com/HenrikJoreteg/RTCPeerConnection,它简化了 WebRTC,但仍然无法正常工作。 WebRTC 对等连接(offer、answer、ice)已建立,但 onaddstream 永远不会被调用。

(我打开 2 个具有相同 html 的浏览器选项卡,它们使用以下代码,我通过运行 start 函数来运行代码以获取视频,然后运行 ​​peer 启动连接。)

谁能帮我指出这段代码中的错误?

var local_stream;
var localvid = document.getElementById('localvid');
var remotevid = document.getElementById('remotevid');
var servers= {iceServers: [{"url": "stun:stun.l.google.com:19302"}]};
var constraints = {optional: [{"DtlsSrtpKeyAgreement": true}]};
var peerConn = new PeerConnection(servers,constraints);

function start(){
  navigator.getUserMedia || 
    (navigator.getUserMedia = navigator.getUserMedia || navigator.mozGetUserMedia ||
               navigator.webkitGetUserMedia || navigator.msGetUserMedia);
  if (navigator.getUserMedia) {
    navigator.getUserMedia({
            video: true, 
            audio: false
          }, onSuccess, function(){});
  } else {
        alert('getUserMedia is not supported in this browser.');
  }
}
function onSuccess(stream){
  localvid.src = window.webkitURL.createObjectURL(stream);
  local_stream = stream;
  localvid.autoplay = true;
}

function peer(){
  peerConn.addStream(local_stream);
  peerConn.offer({ mandatory: { OfferToReceiveAudio:false, OfferToReceiveVideo: true} },
      function( err, offer){
        if(!err){
          console.log("Creating an offer...");
          socket.emit('offer',offer);
        }
      }
      );
}

peerConn.on('ice', function(candidate){
  if(candidate){
    console.log("Sending ice...");console.log(candidate);
    socket.emit('ice',candidate);
  }else { console.log("End of candidates.");}
}); 

peerConn.on('streamAdded',function(stream){
  console.log("Adding stream..");
  remotevid.src = window.webkitURL.createObjectURL(stream);
  remotevid.autoplay = true;
});


socket.on('offer',function(offer){
  peerConn.answer(offer,function (err,answer){
    if(!err){
      console.log("Creating the answer...");console.log(answer);
      socket.emit('answer',answer);
    }
  });
});

socket.on('answer', function(answer){
  console.log("Got the answer...");
  peerConn.handleAnswer(answer);
});

socket.on('ice', function (candidate){
  console.log("Processing ice...");
  peerConn.processIce(candidate);
  console.log(candidate);
});

【问题讨论】:

    标签: webrtc


    【解决方案1】:

    好的。我现在可以使用它了。

    https://github.com/HenrikJoreteg/RTCPeerConnection

    那里的文件太错误了……

    没有'streamAdded'事件,只有'addStream'事件,里面的值不是流而是事件。因此,我需要按照以下方式进行操作。

    peerConn.on('addStream',function(e){
    remotevid.src = window.webkitURL.createObjectURL(e.stream);
    remotevid.autoplay =true;
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-21
      • 1970-01-01
      相关资源
      最近更新 更多