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

作者站长头像
站长
· 阅读数 6

使用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个回答
avatar
test
2024-06-24

解决了,直接上面的写法不变,修改一下freeswitch的配置:1、在default.xml添加:

//123456是会议的房间号,目前是写死,后期需要配置为动态
<extension name="123456">
      <condition field="destination_number" expression="^(123456)$">
        <action application="sleep" data="500"/>
        <action application="conference" data="123456@video-mcu-stereo"/>
      </condition>
    </extension>

answer image2、在conference.conf.xml添加<param name="video-mode" value="mux"/>answer image参考文档:https://blog.csdn.net/jia198810/article/details/118070169?ops...

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容