首页 文章

WebRTC,冰候选人连接

提问于
浏览
2

我正在尝试学习如何在应用程序中使用webRTC,所以我在以下链接中编写了一个代码示例:http://wklej.org/hash/fd599a32e8e/

一开始我需要说我不关心浏览器兼容性,我只需要支持Chromium web引擎而不需要任何外部适配器/其他库 .

Web应用程序应该允许我在同一主机上运行的两个浏览器选项卡之间 Build 连接 - 通过手动交换适当的数据(SDPICE候选者) .

要遵循的步骤:

  • 点击"create offer button",复制本地SDP;

  • 转到其他选项卡并将先前复制的SDP插入"remote SDP"区域,然后按"create answer";

  • 复制生成的本地SDP,转到第一个选项卡,插入"remote SDP"区域并单击"set remote sdp"按钮(不创建应答按钮);

  • 交换冰候选者 - 从一个选项卡复制它们,插入第二个选项卡并按"addCandidates"按钮 . 以另一种方式做同样的事情 .

主要问题是这个功能:

peer.iceconnectionstatechange = function(event) {
    console.log("ice connection state: " + peer.iceConnectionState)
}

不会被触发 . 我尝试使用STUN/TURN服务器但没有成功 . 远程视频无法运行 . 如果有人能指出我弄错了什么?

1 回答

  • 2

    尝试我的(剪切'n'粘贴):https://jsfiddle.net/7vv2vxtt/

    或自动(localStorage):https://jsfiddle.net/2v1Lnpmx/

    This code intentionally left blank.
    

    ICE候选人随着时间的推移被添加到本地提供/答案中,因此它在生成所有候选人嵌入的SDP之前等待候选人结束 .

    应该适用于所有浏览器 .

相关问题