连麦用户列表

本文档主要讲述连麦用户列表及节点 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

currentConnectMicType

该用户的连麦方式

ConnectMicType

isPlayFail

是否自动播放失败

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 连麦用户列表改变事件,开发者通过连麦用户节点的 publishSteam 方法推送本地流。

推流成功后将触发 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.publishSteam({
        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.publishSteam({
        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

Last updated