You need to enable JavaScript to run this app.
导航

API 详情

最近更新时间2024.02.18 18:45:01

首次发布时间2022.01.21 10:38:44

Client

Client 接口提供音视频通话的核心功能,例如进入房间、发布和订阅音视频流等。

你可以通过以下方式来创建 client 对象:

const { Client } = require('./VolcEngineRTC_MiniApp');

成员函数

返回名称
Promise<void> init
Promise<void>destroy
Promise<string>join
Promise<void>leave
Promise<string>publish
Promise<void>unpublish
stringsubscribe
Promise<void>unsubscribe
Promise<void>muteLocal
Promise<void>muteRemote
Promise<void>setUserVisibility
voidon
voidoff
void reportPusherStateChange
voidreportPusherNetStatusChange
voidreportPlayerStateChange
voidreportPlayerNetStatusChange

函数说明

init

init(
    appId: string,
    onSuccess: () => void,
    onFailure: (err: VolcEngineRTCError) => void,
  ) : void

初始化 client ,是进行所有后续操作的前提。

参数

参数名类型说明必填默认值
appIdstring每个应用的唯一标识符,由 RTC 控制台随机生成的。不同的 AppId 生成的实例在 RTC 中进行音视频通话完全独立,无法互通。
onSuccessfunction成功后执行的回调函数 () => void ,无返回值
onFailurefunction失败后执行的回调函数 (err: VolcEngineRTCError) => void,返回 VolcEngineRTCError 对象,包含错误码和错误信息

VolcEngineRTCError 配置

参数名类型说明必填默认值
codenumber错误码
reasonstring错误详情

注意

所有后续操作都需要以此函数的调用为前提。

destroy

destroy(
    onSuccess: () => void,
    onFailure: (err: VolcEngineRTCError) => void,
  ): void

销毁 client 实例。本地用户已经在房间内时,调用本接口将退出房间和销毁 client 实例。

参数

参数名类型说明必填默认值
onSuccessfunction成功后执行的回调函数 ( ) => void ,无返回值
onFailurefunction失败失败后执行的回调函数 (err: VolcEngineRTCError) => void,返回 VolcEngineRTCError 对象,包含错误码和错误信息

VolcEngineRTCError 配置

参数名类型说明必填默认值
codenumber错误码
reasonstring错误详情

join

join(
    token: string,
    roomId: string,
    userId: string,
    onSuccess: (userId: string) => void,
    onFailure: (err: VolcEngineRTCError) => void,
  ): void

初始化 client 后可以调用此接口进入房间,建立微信小程序与信令服务器的 WebSocket 长连接。

参数

参数名类型说明必填默认值
tokenstring动态密钥,用于对登录用户进行鉴权验证。进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线后需要使用密钥 SDK 在您的服务端生成并下发 Token。
roomIdstring需要进入的房间号,当传入的房间号为首次进入时,RTC SDK 将创建房间,并让用户进入该房间
userIdstring本地用户 ID。
onSuccessfunction成功后执行的回调函数 (userId: string) => void,返回本地用户 ID。
onFailurefunction失败后执行的回调函数 (err: VolcEngineRTCError) => void,返回 VolcEngineRTCError 对象,包含错误码和错误信息。当房间内用户达到上限时,进房请求失败。如果你需要房间中容纳更多只订阅不发布的用户,调用 setUserVisibility 切换用户身份。

注意

  • 同一个 client 实例只可以同时进入一个房间。
  • leave 为逆操作。
  • 调用该接口将触发远端的 PEER_ONLINE 事件,不同平台的事件名称可能略有差异,此处以微信小程序端的事件名称为例。
  • 一个 RTC 房间最多同时容纳 20 名可见用户,最多 8 人可同时上麦。更多信息参看用户和媒体流上限

leave

leave(
    onSuccess: () => void,
    onFailure: (err: VolcEngineRTCError) => void,
  ): void

进入房间后可以调用此接口离开当前房间。

参数

参数名类型说明必填默认值
onSuccessfunction成功后执行的回调函数 ( ) => void ,无返回值
onFailurefunction失败后执行的回调函数 (err: VolcEngineRTCError) => void,返回 VolcEngineRTCError 对象,包含错误码和错误信息

注意

  1. join 为逆操作。
  2. 调用该接口将触发远端的 PEER_LEAVE 事件,不同平台的事件名称可能略有差异,此处以微信小程序端的事件名称为例。

publish

publish(
    onSuccess: (url: string) => void,
    onFailure: (err: VolcEngineRTCError) => void,
  ): void

本地用户发布音视频流时,你需要先调用 publish,并将它返回的音视频流 url 地址作为参数传入 live-pusher
参数

参数名类型说明必填默认值
onSuccessfunction成功后执行的回调函数 (url: string) => void ,返回发布的音视频流地址
onFailurefunction失败后执行的回调函数 (err: VolcEngineRTCError) => void,返回VolcEngineRTCError对象,包含错误码和错误信息

注意

  1. unpublish 为逆操作。
  2. 用户已经在房间内才可以调用本接口。
  3. SDK 会对发布音视频流的用户进行鉴权,只有当该用户的 Token 是具有发布权限的才能成功发流。
  4. 建议提醒用户同时打开摄像机和麦克风权限,否则无法正常发布媒体流。
  5. 调用该接口将触发已订阅了该用户的远端的 STREAM_ADDED 事件,不同平台的事件名称可能略有差异,此处以微信小程序端的事件名称为例。
  6. 开始发布媒体流之后,建议通过监听 UPDATE_URLSTREAM_FAILED 关注媒体流的发布状态。

unpublish

unpublish(
    onSuccess: () => void,
    onFailure: (err: VolcEngineRTCError) => void,
  ): void

取消发布音视频流。

参数

参数名类型说明必填默认值
onSuccessfunction成功后执行的回调函数 ( ) => void ,无返回值
onFailurefunction失败后执行的回调函数 (err: VolcEngineRTCError) => void,返回 VolcEngineRTCError 对象,包含错误码和错误信息

注意

  1. publish 为逆操作。
  2. 用户发布音视频流后可以调用本接口。
  3. 调用该接口将在已订阅了该用户的远端触发 STREAM_REMOVED 事件,不同平台的事件名称可能略有差异,此处以微信小程序端的事件名称为例。

subscribe

subscribe(
    userId: string,
    options: SubOptions,
    onSuccess: (url: string) => void,
    onFailure: (err: VolcEngineRTCError) => void,
  ): void

订阅远端音视频流。

参数

参数名类型说明必填默认值
userIdstring订阅的远端用户 ID,该参数可以从 PEER_ONLINE 事件中获取
optionsobject订阅配置见下方表格
onSuccessfunction成功后执行的回调函数 (url: string) => void ,返回音视频流的订阅地址
onFailurefunction失败后执行的回调函数 (err: VolcEngineRTCError) => void,返回VolcEngineRTCError对象,包含错误码和错误信息

SubOptions 配置

参数名类型说明必填默认值
videoboolean是否订阅远端视频true
audioboolean是否订阅远端音频true
screenboolean订阅的流是否为屏幕共享流,该参数可以从 STREAM_ADDED 事件中获取false

注意

  1. unsubscribe 为逆操作。

  2. 建议配合 EVENT.STREAM_ADDED 事件使用。

  3. 用户已经在房间内才可以调用本接口。

  4. 订阅媒体流之后,建议通过监听 UPDATE_URLSTREAM_FAILED 关注媒体流的接收状态。

unsubscribe

unsubscribe(
    userId: string,
    options: { screen?: boolean },
    onSuccess: () => void,
    onFailure: (err: VolcEngineRTCError) => void,
  ): void

取消订阅远端音视频流。

参数

参数名类型说明必填默认值
userIdstring需要取消订阅的用户 ID
optionsobject取消订阅配置,指定取消订阅的流见下方表格
onSuccessfunction成功后执行的回调函数 ( ) => void ,无返回值
onFailurefunction失败后执行的回调函数 (err: VolcEngineRTCError) => void,返回VolcEngineRTCError对象,包含错误码和错误信息

options 配置

参数名类型说明必填默认值
screenboolean订阅的流是否为屏幕共享流,该参数可以从 STREAM_ADDED 事件中获取false

注意

  1. subscribe 为逆操作。
  2. 本地用户已经订阅了远端用户才可以调用本接口。

muteLocal

muteLocal(
    options: {
      audio: boolean;
      video: boolean;
    },
    onSuccess: () => void,
    onFailure: (err: VolcEngineRTCError) => void,
  ) : void

当你需要禁用本地音视频流采集时,请通过使用微信小程序标签 live-pusher 中的 enable-cameraenable-mic 实现,并调用本接口来通知服务端。

参数

参数名类型说明必填默认值
optionsstring是否禁用本地流:true 为禁用,false 为启用。
本地流类型:audio 为音频,video 为视频。
onSuccessfunction成功后执行的回调函数 ( ) => void,无返回值。
已订阅该用户的远端将触发以下回调: 不同平台的事件名称可能略有差异,此处以微信小程序端的事件名称为例。
onFailurefunction失败后执行的回调函数 (err: VolcEngineRTCError) => void,返回VolcEngineRTCError对象,包含错误码和错误信息

muteRemote

muteRemote(
    userId: string,
    options: {
      audio: boolean;
      video: boolean;
      screen: boolean;
    },
    onSuccess: () => void,
    onFailure: (err: VolcEngineRTCError) => void,
  ):void

暂停接收指定的远端用户的音视频流。

参数

参数名类型说明必填默认值
userIdstring远端用户 ID
optionsstring是否禁用流:true 为禁用,false 为启用。远端音视频流禁用选项:
video:视频
audio:音频
screen:当前流是否为屏幕共享流
{screen: false}
onSuccessfunction成功后执行的回调函数
() => void
无返回值
onFailurefunction失败后执行的回调函数
(err: VolcEngineRTCError) => void
返回VolcEngineRTCError 对象,包含错误码和错误信息

注意

  • 指定的远端用户为已订阅的用户才可以调用本接口。
  • 调用 muteRemote 接口后,服务器将暂停推送指定的流,而如果调用 unSubscribe 接口,服务端将停止对指定流进行转码。

setUserVisibility

setUserVisibility(enable, onSuccess, onFailure): Promise<void>;

设置用户身份。可见用户可以发布和订阅媒体流。不可见用户只能订阅媒体流。进房后默认为可见用户。
一个 RTC 房间最多同时容纳 20 名可见用户,最多 8 人可同时上麦。更多信息参看用户和媒体流上限

参数

参数名类型说明必填默认值
enableboolean用户是否对房间内其他用户可见:
  • true: 默认,可见用户,可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。
  • false: 不可见用户,不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。
  • -
    onSuccess() => void成功后执行的回调函数 ( ) => void ,无返回值。-
    onFailure(err: VolcEngineRTCError) => void失败后执行的回调函数 (err: VolcEngineRTCError) => void,返回 VolcEngineRTCError 对象,包含错误码和错误信息。-

    返回值

    类型: Promise
    注意

    • 该方法在加入房间前后均可调用。
    • 在房间内调用此方法,房间内其他用户会收到相应的回调通知:
      • 从 false 切换至 true 时,房间内其他用户会收到 PEER_ONLINE 回调通知;
      • 从 true 切换至 false 时,房间内其他用户会收到 PEER_LEAVE 回调通知。

    on

    on(event: string, callback: () => void): void
    

    监听事件

    参数

    参数名类型说明必填默认值
    eventstring需要监听的事件
    callbackfunction事件触发时调用的回调

    注意

    off 为逆操作。

    off

    off(event: string, callback: () => void): void
    

    取消监听事件

    参数

    参数名类型说明必填默认值
    eventstring需要取消监听的事件
    callbackfunction事件触发时调用的回调

    注意

    on 为逆操作。

    reportPusherStateChange

    reportPusherStateChange(code: number, message: string);
    

    如果你需要 SDK 收集上行的媒体流状态,例如,打开摄像头失败等,可以调用本接口,将相应的数据传给 RTC SDK,由 RTC SDK 进行整理和上报。推荐和 reportPusherNetStatusChange 一起在组件中调用,方便复用。
    参数

    参数名类型说明必填默认值
    codenumber状态码
    messagestring状态描述

    注意

    状态码 code 详情请在微信小程序文档中查询。

    reportPusherNetStatusChange

    reportPusherStateChange(info: any);
    

    如果你需要 SDK 收集上行的媒体流信息,例如,当前视频帧率等,可以调用本接口,将相应的数据传给 RTC SDK,由 RTC SDK 进行整理和上报。推荐配合 reportPusherStateChange 使用。
    参数

    参数名类型说明必填默认值
    infoWxMediaState推流状态信息(帧率、码率)

    注意

    网络状态数据 info 详情请在微信小程序文档中查询。

    reportPlayerStateChange

    reportPlayerStateChange(uid: string, code: number, message: string);
    

    如果你需要 SDK 收集下行的媒体流状态,例如,视频播放结束等,可以调用本接口,将相应的数据传给 RTC SDK, 由 RTC SDK 进行整理和上报。推荐配合 reportPlayerNetStatusChange 使用。
    参数

    参数名类型说明必填默认值
    uidstring订阅者的用户 id
    codenumber状态码
    messagestring状态描述

    状态码 code 详情请在微信小程序官方文档中查询。

    reportPlayerNetStatusChange

    reportPlayerNetStatusChange(uid: string, info: any);
    

    如果你需要 SDK 收集下行的媒体流信息,例如,当前视频帧率等,可以调用本接口,将相应的数据传给 RTC SDK, 由 RTC SDK 进行整理和上报。推荐配合 reportPlayerStateChange 使用。
    参数

    参数名类型说明必填默认值
    uidstring订阅者的用户 ID
    infoWxMediaState推流状态信息(帧率、码率)

    注意

    网络状态数据 info 详情请在微信小程序官方文档中查询。