实现跨房连麦

实现跨房连麦

前言

在直播场景中,常常需要跨房连麦来支持不同直播间的主播实时互动的需求,本文主要介绍 Web 端跨房间连麦的实现方案。

跨房连麦 API

版本要求

您需要升级 sdk 版本到 v4.15.21+ 版本。

发起跨房连麦

  1. 发起连麦后,两个房间完全打通,双方主播可以互相拉流。
  2. 在不调用 disconnectOtherRoom 的情况下,跨房连麦状态会一直保持至对方房间解散为止,即对方最后一个用户退房为止。
// 指定跨房对端的房间号,没有数字和字符房间号区分,统一传 string 类型,后台会自动根据您的房间号类型来判断数字还是字符房间号。
client.callExperimentalAPI('connectOtherRoom', { roomId: '6666' });

更新跨房连麦

更新对方房间各路流的 mute 的状态。在跨房连麦状态不终止的情况下,中途主播退房重进、或者新主播进房也能保持 mute 状态。

  • 若填写了 userId,则是指定 mute 对方房间的主播。
  • 若不填写 userId,则是批量 mute 对方房间所有主播。

如果对方房间就一个主播,mute 了对方,对方主播退出房间,这时候连麦状态就停了,对方重进房,需要重新发起连麦。

const options = {
  updateList: [{
    roomId: '6666',
    userId: 'xxx', // 非必填
    muteAudio: true, // true 静音
    muteVideo: true, // true 禁画
    muteAuxiliary: true, // true 禁辅流,一般是屏幕分享
  }]
}
client.callExperimentalAPI('updateOtherRoomForwardMode', options);

停止跨房连麦

client.callExperimentalAPI('disconnectOtherRoom', { roomId: '6666' });