首页 > 解决方案 > 修改MDN教程实现WebRTC一对多调用

问题描述

现在是 2020 年 8 月,我是 WebRTC 的新手。我已按照此处的说明进行操作,并成功地进行了仅视频和音频的调用,并对代码进行了一些添加。

我遇到的麻烦是修改此代码以进行一对多甚至多对多的呼叫 - 仅限视频和音频。

到目前为止,我已经开始用 [i] 替换 [0]:

function handleTrackEvent(event) {
    document.getElementById("received_video").srcObject = event.streams[0];
    document.getElementById("hangup-button").disabled = false;
}

function handleTrackEvent(event, i) {
    document.getElementById("received_video").srcObject = event.streams[i];
    document.getElementById("hangup-button").disabled = false;
}

并在以下位置启动 i:

function handleUserlistMsg(msg) {
    var i = 0;
    var listElem = document.querySelector(".userlistbox");

    while (listElem.firstChild) {
        listElem.removeChild(listElem.firstChild);
    }

    msg.users.forEach(function(username) {
        var item = document.createElement("li");
        item.appendChild(document.createTextNode(username));
        item.addEventListener("click", invite(event, i), false);
        listElem.appendChild(item);
        i++;
    });
}

我在控制台日志中遇到的问题是:

[10:00:17 AM] Error InvalidStateError: Failed to execute 'setRemoteDescription' 

on 'RTCPeerConnection': Failed to set remote answer sdp: Called in wrong state: kStable

对我来说,这表明我已经与同伴建立了联系

那么,如何建立多个连接一个呼叫者发起多个参与者?

标签: javascriptwebrtc

解决方案


我对这个问题的解决方案是通过废弃原始 webRTC 并使用https://jitsi.org 这个软件在我自己的服务器上是私有的、可定制的和可靠的。


推荐阅读