保利威文档中心

帮助中心

连麦用户列表

更新时间:2026-01-19 09:16:42

本文档主要讲述连麦用户列表及节点 ConnectMicItem 的 Api 说明。

一、连麦列表

1.1 获取连麦列表

观众观看连麦用户流方式:

  • 当观众未连麦时,以混流的方式观看;
  • 当观众连麦后,以 RTC 流观看;

当观众上麦或连麦用户流加入后触发 ConnectMicEvents.ConnectMicListChange 事件,开发者通过事件的 connectMicListgetConnectMicList 方法获取连麦用户列表。

Api 方法: getConnectMicList(): ConnectMicItem[]

返回值说明: ConnectMicItem[] 类型

示例:

watchCore.connectMic.eventEmitter.on(ConnectMicEvents.ConnectMicListChange, () => {
  const connectMicList = watchCore.connectMic.getConnectMicList();
  console.log('连麦用户列表', connectMicList);
});

二、连麦用户节点

2.1 ConnectMicItem 属性

属性名 说明 类型
streamId 用户流 id string
isLocal 是否本地推流 boolean
isSelf 是否为当前用户 boolean
isMaster 是否为第一画面 boolean
isTeacher 是否讲师 boolean
nickname 用户昵称 string
pic 用户头像 string
userType 用户身份 ChatUserType
isAudioMuted 是否关闭麦克风 boolean
currentVolume 当前音量(0 ~ 1) number
isVideoMuted 是否关闭摄像头 boolean
mirrorEnabled 是否开启镜像(仅本地流有效) boolean
currentConnectMicType 该用户的连麦方式 ConnectMicType
isPlayFail 是否自动播放失败 boolean
isAudience 是否观众模式,仅拉主讲流 boolean

示例:

// 获取连麦用户列表
const connectMicList = watchCore.connectMic.getConnectMicList();
connectMicList.forEach((micItem) => {
  console.log('连麦用户流 id', micItem.streamId);
  console.log('该用户是否关闭摄像头', micItem.isVideoMuted);
  console.log('该用户是否关闭麦克风', micItem.isAudioMuted);
});

2.2 推送本地流

当主讲同意观众的连麦申请后,连麦状态会变为推送中 ConnectMicStatus.Applying,连麦模块会回调 ConnectMicEvents.ConnectMicListChange 连麦用户列表改变事件,开发者通过连麦用户节点的 publishStream 方法推送本地流。

推流成功后将触发 ConnectMicEvents.PublishStreamSuccess 事件。

Api 方法: publishStream(options: PublishStreamOptions): void

参数说明:

  • options:推流参数,PublishStreamOptions 类型,必传,详细类型说明如下
参数名 说明 类型 必须 默认值
element 渲染节点 HTMLDivElement -
control 控制栏 boolean true
fit 视频裁剪模式 ConnectMicFitType ConnectMicFitType.Cover
profile 推流属性 StreamProfile '240p'

示例:

watchCore.connectMic.eventEmitter.on(ConnectMicEvents.ConnectMicListChange, ({ connectMicList }) => {
  // 遍历连麦用户列表
  connectMicList.forEach((micItem) => {
    // 本地流节点
    if (micItem.isLocal) {
      // 推送本地流
      micItem.publishStream({
        element: 'NodeElement',
      });
    }
  });
});

2.3 订阅连麦用户流

当观众上麦或下麦后,连麦模块会回调 ConnectMicEvents.ConnectMicListChange 连麦用户列表改变事件,开发者可监听连麦用户列表改变事件获取新的连麦用户列表,通过连麦用户节点的 subscribeStream 方法订阅连麦用户流。

Api 方法: subscribeStream(options: SubscribeSteamOptions): void

参数说明:

  • options:订阅流参数,SubscribeSteamOptions 类型,必传,详细类型说明如下
参数名 说明 类型 必须 默认值
element 渲染节点 HTMLDivElement -
control 控制栏 boolean true
fit 视频裁剪模式 ConnectMicFitType ConnectMicFitType.Cover
video 拉取视频流 boolean true
audio 拉取音频流 boolean true

示例:

watchCore.connectMic.eventEmitter.on(ConnectMicEvents.ConnectMicListChange, ({ connectMicList }) => {
  // 遍历连麦用户列表
  connectMicList.forEach((micItem) => {
    if (micItem.isLocal) {
      // 推送本地流
      micItem.publishStream({
        element: 'NodeElement',
      });
    } else {
      // 订阅连麦流
      micItem.subscribeStream({
        element: 'NodeElement',
      });
    }
  });
});

2.4 恢复连麦流播放

自动播放失败后,用户节点 isPlayFail 会更改为 true,此时需要显示播放按钮,用户点击播放按钮后可调用该方法恢复流播放。

Api 方法: resumeStream(): void

示例:

if (micItem.isPlayFail) {
  console.log('显示节点的播放按钮');
}

document.querySelector('播放按钮选择器').addEventListener('click', () => {
  // 恢复播放
  micItem.resumeStream();
});

2.5 移除连麦用户流

当连麦节点销毁时,需要调用 removeStream 方法移除用户流,以 vue 组件销毁为例:

Api 方法: removeStream(): void

示例:

export default {
  beforeDestroy() {
    this.micItem.removeStream();
  }
};

三、其他

3.1 推流属性

profile 推流属性可选值及对应的配置参数:

推流属性 分辨率 桢率 码率
240p 320 × 240 20 200
240p_1 320 × 240 15 200
240p_4 424 × 240 15 220
480p 640 × 480 15 500
480p_1 640 × 480 15 500
480p_8 848 × 480 15 610
720p 1280 × 720 15 1130
720p_1 1280 × 720 15 1130
720p_2 1280 × 720 30 2000
720p_5 960 × 720 15 910
1080p_1 1920 × 1080 15 1500
1080p_2 1920 × 1080 25 1500
联系客服,在线咨询