【问题标题】:RTCMultiConnection get back to current streamRTCMultiConnection 返回当前流
【发布时间】:2017-02-19 11:34:21
【问题描述】:

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

情景;

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

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

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

我希望有人知道如何做到这一点? 我不想重新打开整个信息流。

【问题讨论】:

    标签: javascript stream webrtc


    【解决方案1】:

    打开房间的人不得加入同一个房间。

    您可以使用以下方法访问视频(媒体流):

    1) 如果您知道通常称为“stream-id”的“video-id”

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

    2) 如果您知道远程用户的唯一 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-30
      • 1970-01-01
      • 2020-11-13
      • 1970-01-01
      • 2017-02-08
      • 2021-02-04
      • 2012-03-20
      • 1970-01-01
      相关资源
      最近更新 更多