组件功能

本文介绍了组件事件和与组件事件相关接口的功能。

音视频通话组件

组件标签:rtc

组件描述:用于 Flex 模式的音视频通话接入。

组件属性

属性名称

参数类型

是否必填

默认值

说明

config

Object

Config 对象。

currentUserId

String

当前用户的 uid,当前播放的内容可以通过这个参数传入 UserId 进行切换。

组件事件

事件名称

事件描述

onPlayerChange

用户播放界面切换事件。

onUserChange

用户变化事件。

onHangup

挂断事件。

onError

通用报错。

引入组件

{
  "usingComponents": {
    "rtc": "plugin://rtc/flex"
  }
}

使用组件

<rtc
  config="{{ config }}"
  currentUserId="{{ currentUserId }}"
  onPlayerChange="handlePlayerChange"
  onUserChange="handleUserChange"
  onHangup="handleHangup"
  onError="handleError"
/>

参数说明

  • config 参见 重要参数 说明。

  • currentUserId 当前播放的内容可以通过这个参数传入 userId 进行切换。

  • onPlayerChange(userId: string, preUserId: string): void 用户播放界面切换事件。

  • onUserChange(state: UserState): void 用户变化事件。

  • onError(error: Error): void 通用报错。

  • onHangup(): void 挂断事件。

UserState 对象

interface UserState {
  joined: string[]  // 加入的用户列表
  exited: string[]  // 退出的用户列表
  users: string[]   // 当前房间内的用户列表
  current?: string  // 当前播放内容的用户 ID
}

Config 参见 重要参数 说明。

接口列表

invite

接口描述:邀请用户加入通话。入参 如下表所示。

参数名称

参数类型

是否必填

默认值

说明

userId

String

用户 uid

参数名称

参数类型

是否必填

默认值

描述

inviteInfo

Object

InviteInfo 对象

InviteInfo 对象:邀请接口可选的参数,用于描述被邀请人展示的内容。

interface InviteInfo {
  nickName?: string // 邀请人昵称
  page?: string // 小程序的落地页
  inviteType?: InviteType // 被邀请人类型(0: web, 1: app), 默认为 1
  roomType?: RoomType // 房间类型(1: 音视频通话, 2: 音频通话),默认为 1
  params?: Record<string, unknown> | null
}

join

接口描述:加入视频通话。入参 如下表所示。

参数名称

参数类型

是否必填

默认值

说明

roomId

String

参数名称

参数类型

是否必填

默认值

说明

config

Object

Config 对象,参见 重要参数

出参

参数名称

参数类型

说明

RoomInfo

Object

Promise

const { rtc } = requirePlugin('rtc')

// 加入的人调用这个 API
rtc.join(roomId, config) // config 是需要的参数,参见  
重要参数 
。

获取 RoomInfo

视频通话由一方发起,发起后得到 RoomInfo,用于后续其他人加入,获取 RoomInfo 有两种方式(选择其中一种即可)。

  1. 通过 api join ,调用后返回 Promise<RoomInfo>

    rtc.start(config).then(roomInfo => {
      const { roomId, token } = roomInfo
      // 这里拿到创建的 roomId 和 token,用于后续其他人加入使用
    })
  2. 通过 ROOM_CREATED 事件得到。

    rtc.on(EventType.ROOM_CREATED, data => {
      // 这里拿到发起人创建的 roomId 和 token,用于后续其他人加入使用
      const { roomId, token } = data
    })

Config 对象参见 重要参数 说明。

on

接口描述:监听通话事件。入参 如下表所示。

参数名称

参数类型

是否必填

默认值

说明

type

Object

事件类型

参数名称

参数类型

是否必填

默认值

说明

handler

Any

回调函数

const { rtc, EventType } = requirePlugin('rtc')

rtc.on(EventType.ROOM_CREATED, data => {
  // 这里拿到发起人创建的 roomId 和 token,用于后续其他人加入使用
  const { roomId, token } = data
})

start

接口描述:发起视频通话。入参 如下表所示。

参数名称

参数类型

是否必填

默认值

说明

confiig

Object

Config 对象,参见 重要参数

出参

参数名称

参数类型

说明

RoomInfo

Object

Promise

const { rtc } = requirePlugin('rtc')

// 发起人调用这个 API
rtc.start(config).then(roomInfo => {
  const { roomId, token } = roomInfo
  // 这里拿到创建的 roomId 和 token,用于后续其他人加入使用
})

Config 对象参见 重要参数 说明。