保利威文档中心

幫助中心

連麥用戶列表

更新時間: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
联系客服,在线咨询