RTCMultiConnection 回到当前流

RTCMultiConnection get back to current stream

我正在使用 RTCMultiConnection v3 插件,我不知道如何重新打开当前流。

场景;

UserA 打开 cam,自动将流附加到 $("#webcam")。流已打开。

UserA 想加入 UserB 并做了 connection.join("UserB")(假装 UserB 也有一个视频流)。现在这个 html()$("#webcam") 所以 UserA ``$("#webcam")` 被 UserB 流覆盖,但 UserA 流是实时的。到目前为止一切顺利。

现在我想像 UserA 那样重新附加 UserA 流 connection.join("UserA") 他自己的流。

我希望有人知道该怎么做? 我不想重新打开整个流。

The person who opens a room, must NOT join same room.

您可以使用以下方法访问视频 (media-streams):

1) 如果您知道通常命名为 "stream-id"

的 "video-id"
var streamEvent = connection.streamEvents['stream-id'];
var mediaStreamObject = streamEvent.stream;
var videoFreshURL = URL.createObjectURL(mediaStreamObject);
yourVideo.src = videoFreshURL;

2) 如果您知道远程用户的 Unique-ID 通常命名为 "userid"

var userPeer = connection.peers['user-id'].peer;
var allIncomingVideos = userPeer.getRemoteStreams();
var firstIncomingVideo = allIncomingVideos[0];
var firstVideoFreshURL = URL.createObjectURL(firstIncomingVideo);
yourVideo.src = firstVideoFreshURL;

3) 将事件视频存储在您自己的对象中

window.yourOwnGlobalObject = {};
connection.onstream = function(event) {
   window.yourOwnGlobalObject[event.userid] = event;
   document.body.appendChild( event.mediaElement );
};

function getUserXYZVideo(userid) {
    var userVideo = window.yourOwnGlobalObject[userid].mediaElement;
    // var userStream = window.yourOwnGlobalObject[userid].stream;
    return userVideo;
}