猿问

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

我有一个基本的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

http://img.mukewang.com/60811df90001a77c06150146.jpg

繁星淼淼
浏览 515回答 2
2回答

哔哔one

调用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 
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答