画中画是vLine进行WebRTC的唯一方式吗?

时间:2013-07-10 02:33:40

标签: webrtc vline

我已将vLine集成到测试网站中,我注意到它是画中画。这是唯一有效的方法吗?有没有办法让两个流分开?

1 个答案:

答案 0 :(得分:1)

启用vLine UI widgets,特别是uiVideoPanel widget时,会出现画中画(PIP)模式。请注意"ui": true启用所有小部件,包括uiVideoPanel小部件。

如果您想以自定义方式布置视频流,可以停用uiVideoPanel窗口小部件并处理mediaSession:addLocalStream and mediaSession:addRemoteStream events,您可以在其中使用stream.createMediaElement()创建HTML <video>元素{3}}。您可以将生成的<video>元素放在任何div中,并使用CSS调整布局。

vline-shell example

取消了以下代码段
// $client is the vline.Client that you created with vline.Client.create()
$client.on('add:mediaSession', onAddMediaSession, self);

// callback on new MediaSessions
function addMediaSession_(mediaSession) {
  // add event handler for add stream events
  mediaSession.on('mediaSession:addLocalStream mediaSession:addRemoteStream', function(event) {
    // get the vline.MediaStream
    var stream = event.stream;

    // guard against adding a local video stream twice if it is attached to two media sessions
    if ($('#' + stream.getId()).length) {
      return;
    }

    // create video or audio element, giving it the the same id as the MediaStream
    var elem = $(event.stream.createMediaElement());
    elem.prop('id', stream.getId());

    // video-wrapper is the id of a div in the page
    $('#video-wrapper').append(elem);
  });
  // add event handler for remove stream events
  mediaSession.on('mediaSession:removeLocalStream mediaSession:removeRemoteStream', function(event) {
    $('#' + event.stream.getId()).remove();
  });
}