Tutorial: 实现跨房连麦

实现跨房连麦

功能描述

默认情况下,只有同一个房间中的用户之间可以进行音视频通话,不同的房间之间的音视频流是相互隔离的。跨房连麦功能可以让不同房间的用户进行音视频通话。

在直播场景中,通过该功能使得双方主播可以互相通话,双方的观众也可以观看对方主播,本文主要介绍如何使用 CrossRoom 插件实现跨房连麦需求。

使用步骤

确保您的 SDK 版本 >= v5.8.0

  1. 开始跨房连麦
import { CrossRoom } from 'trtc-sdk-v5/plugins/cross-room'
const trtc = TRTC.create({ plugins: [CrossRoom] });
await trtc.enterRoom({ sdkAppId, userId: 'user1', userSig, roomId: 7777 });
// 将当前房间 7777 的 user1 和对端房间 8888 的 user2 打通。user2 的流会推到 7777 房间,user1 的流会推到 8888 房间。
await trtc.startPlugin('CrossRoom', {
  roomId: 8888,
  userId: 'user2'
});
  1. 更新跨房连麦对端主播的 mute 状态

当开启跨房连麦后,对端房间主播的流推到当前房间,本房间内的所有用户都将收到该主播发布的音视频流。

您可以通过调用该接口,限制跨房主播在本房间内的上行能力,禁止或允许跨房主播发布音频/主路视频/辅路视频,该行为会影响房间内的所有用户。

在禁用跨房主播某种上行能力后,本房间内所有用户将无法收到对应音视频流,且无法再订阅对应的音视频。

await trtc.updatePlugin('CrossRoom', {
  updateList: [{
    roomId: 8888,
    userId: 'user2'
    muteAudio: true,
    muteVideo: false,
    muteSubStream: false,
  }]
})
  1. 停止跨房连麦

用户级别的跨房连麦调用下列接口后,会将当前发起跨房连麦的所有跨房取消。

await trtc.stopPlugin('CrossRoom')