为了账号安全,请及时绑定邮箱和手机立即绑定

当我在Google Chrome浏览器上运行本地webRTC应用程序时,没有生成ICE候选人

当我在Google Chrome浏览器上运行本地webRTC应用程序时,没有生成ICE候选人

繁星淼淼 2021-04-06 14:19:11
我有一个基本的webRTC应用程序,该应用程序支持两个对等方之间的视频/音频通信和文件共享。在Mozilla Firefox上打开该应用程序时,该应用程序按预期运行,但在Google Chrome上运行时,该onicecandidate返回null我的RTCPeerConnection        myConnection = new RTCPeerConnection();建立对等连接myConnection.createOffer().then(offer => {    currentoffer = offer    myConnection.setLocalDescription(offer);})    .then(function () {        myConnection.onicecandidate = function (event) {            console.log(event.candidate);            if (event.candidate) {                send({                    type: "candidate",                    candidate: event.candidate                });            }        };        send({            type: "offer",            offer: currentoffer        });    })    .catch(function (reason) {        alert("Problem with creating offer. " + reason);    });在Mozilla Firefox上,您可以在控制台日志中看到在每个“ onicecandidate”事件中收集的所有ICE候选者在Chrome上,输出为null
查看完整描述

2 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

调用createOffer()方法时应传递options对象,例如:


myConnection = new RTCPeerConnection();


var mediaConstraints = {

    'offerToReceiveAudio': true,

    'offerToReceiveVideo': true    

};


myConnection.createOffer(mediaConstraints).then(offer => {

        currentoffer = offer

        myConnection.setLocalDescription(offer);

    })

    ...// the rest of you code goes here    

或者,您可以RTCRtpTransceiver在创建报价之前指定:


myConnection = new RTCPeerConnection();


myConnection.addTransceiver("audio");

myConnection.addTransceiver("video");


myConnection.createOffer().then(offer => {

        currentoffer = offer

        myConnection.setLocalDescription(offer);

    })

    ...// the rest of you code goes here 


查看完整回答
反对 回复 2021-04-22
  • 2 回答
  • 0 关注
  • 514 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信