当前位置: 首页 > 知识库问答 >
问题:

javascript - jssip开启多人视频会议怎么获取视频流并显示在页面的video上?

赖杰
2023-11-15

使用jssip库搭建音视频对讲时,一对一的音视频通了,但是多人视频会议怎么获取视频流并显示在页面的video上?
我目前写的监听:

userAgent.on("newRTCSession", (e) => {  let newsession = e.session  newSession.on("confirmed", (e) => {    const addTrack = (tracks, stream) => {          console.log('tracks', tracks)          console.log('stream', stream)          for (let i = 0; i < tracks.length; i++) {            stream.addTrack(tracks[i].track);          }        }    if(newSession.connection.getSenders()){          console.log('自己的流');          const localVideoStream = new MediaStream();          const localVideo = that.$refs.localVideo          localVideo.srcObject = localVideoStream;          addTrack(newSession.connection.getSenders(), localVideoStream);          localVideo.play();        }                const remoteVideoStream = new MediaStream()        const remoteVideo = that.$refs.remoteVideo        remoteVideo.srcObject = remoteVideoStream        addTrack(newSession.connection.getReceivers(), remoteVideoStream)        remoteVideo.play()  })});

我现在这样写,当多人进入的时候,别人的视频就都放在一个video标签里了,而且只显示一个,不会把多个人的视频显示出来,需要怎么写呢

共有1个答案

贺栋
2023-11-15

参考一下这个:

userAgent.on("newRTCSession", (e) => {  let newSession = e.session;  newSession.on("confirmed", (e) => {    const localVideoStream = new MediaStream();    const localVideo = document.createElement('video');    localVideo.srcObject = localVideoStream;    newSession.connection.getSenders().forEach(sender => {      localVideoStream.addTrack(sender.track);    });    localVideo.play();    document.body.appendChild(localVideo); // 加到页面上    newSession.on("trackAdded", () => {      const remoteStream = new MediaStream();      newSession.connection.getReceivers().forEach(receiver => {        remoteStream.addTrack(receiver.track);      });      const remoteVideo = document.createElement('video');      remoteVideo.srcObject = remoteStream;      remoteVideo.play();      document.body.appendChild(remoteVideo); // 加到页面上    });  });});
 类似资料:
  •         视频会议须更新到6.13版本方可使用。会议室参会人数可支持50+同时进行视频会议,目前客户端仅能显示最多6方视频(同时参会人数可100+),但是会议过程中讲话人会到主屏上进行显示。目前轻推上仅支持发起会议,不支持通过输入会议号的形式加入会议,如果需要发起会议,请使用轻推客户端。 操作方法: 1.    手机版: (1)发起会议:右上角通话按钮-视频会议-选择联系人-发起会议 (2)

  • VideoOutput元素不被限制与MediaPlayer元素绑定使用的。它也可以直接用来加载实时视频资源显示一个流媒体。应用程序使用Camera元素作为资源。来自Camera的视频流给用户提供了一个实时流媒体。 import QtQuick 2.0 import QtMultimedia 5.0 Item { width: 1024 height: 600 Video

  • 如上所述,我使用FFmpeg(命令行)通过UDP传输网络摄像头。在客户端,我使用Java OpenCV,即捕获行<代码>视频捕获。打开(“udp://xx.xx.xx.xx:xx) 。如果我将流作为mpegts(ffmpeg-f mpegts)发送,我可以显示流,但是;如果我把它作为rawvideo(ffmpeg-f rawvideo)发送,我不能。 是否有要设置的参数(如CvType)?

  • function checkVideo() { if(!!document.createElement('video').canPlayType) { var vidTest=document.createElement("video"); oggTest=vidTest.canPlayType('video/ogg; codecs="theora, vorbis"'); if (!oggTest

  • HTML5功能包括本机音频和视频支持,无需使用Flash。 HTML5 和 标签使得向网站添加媒体变得简单。您需要设置src属性以标识媒体源并包含控件属性,以便用户可以播放和暂停媒体。 嵌入视频 以下是在您的网页中嵌入视频文件的最简单形式 - <video src = "foo.mp4" width = "300" height = "200" controls> Your browser

  • 如果您要为屏幕共享,语音备忘录等构建应用程序,音频和视频捕获是重要的特性。如果您需要应用程序来捕获配置文件图片,它们也很有用。 我们将使用getUserMedia HTML5 API通过Electron捕获音频和视频流。 让我们首先在main.js文件中设置我们的主进程,如下所示 - const {app, BrowserWindow} = require('electron') const ur