DingRTCClient

更新时间:
复制为 MD 格式

DingRTCClient 提供音视频通话的核心功能,比如加入频道、发布和订阅音视频轨道等。您可以通过 createClient 创建一个 Client 对象。一个 Client 对象代表一个本地客户端。

属性列表

属性

类型

描述

支持的最低版本

channelName

string

频道名称。

如果本地用户没有加入频道,该属性值为 undefined。

0.7.0

connectionState

ConnectionState

sdk 实例与服务器连接状态。

0.7.0

remoteUsers

readonly

RemoteUser[]

远端用户信息列表,包含频道中各个远端用户的用户 ID 和轨道信息。

如果本地用户没有加入频道,则该列表为空。

0.7.0

userIdreadonly

string

本地用户的用户 ID。

如果本地用户没有加入频道,该属性值为 undefined。

0.7.0

接口列表

接口

描述

支持的最低版本

join()

加入频道,在同一个频道内的用户可以互相通话。

调用该方法加入频道时,本地会触发 "connection-state-change" 回调。

本端加入频道成功后,远端会触发 "user-joined" 回调。

0.7.0

leave()

离开频道,即挂断或退出通话。

调用该方法离开频道时,本地会触发 "connection-state-change" 回调。

远端会触发 "user-left" 回调。

0.7.0

publish()

发布本地音视频轨道至频道中。

发布音视频轨道之后,远端会触发 "user-published" 回调。

0.7.0

unpublish()

取消发布本地音视频轨道。

取消发布音视频轨道之后,远端会触发 "user-unpublished" 回调。

0.7.0

subscribe()

订阅远端用户的音视频轨道。

0.7.0

unsubscribe()

取消订阅远端用户的音视频轨道。

0.7.0

off()

取消一个指定事件的监听回调函数。

0.7.0

on()

监听一个指定事件并设置回调函数。

0.7.0

once()

监听一个指定事件一次,回调函数触发后移除。

0.7.0

removeAllListeners()

取消该对象指定事件或所有事件上的监听回调。

0.7.0

reportPusherNetStatus()

上报推流组件<live-pusher> 的网络状态。

0.7.0

reportPusherStateChange()

上报推流组件<live-pusher> 的状态变化。

0.7.0

reportPlayerNetStatus()

上报播放组件<live-player>的网络状态。

0.7.0

reportPlayerStateChange()

上报播放组件<live-player>的状态变化。

0.7.0

事件列表

事件

事件参数

描述

支持的最低版本

"connection-state-change"

(curState:ConnectionState, prevState:ConnectionState, reason?:DisconnectedReason) => void

SDK 与服务器的连接状态发生改变回调。

0.7.0

"user-info-updated"

(uid: string, msg: 'mute-audio' | 'mute-video' | 'unmute-audio' | 'unmute-video') => void

该回调用于提示用户状态变化。

在大部分情况下,你只需要监听 user-published 和 user-unpublished 就可以完成订阅、取消订阅、展示远端用户是否打开了摄像头和麦克风等工作,无需特别关注实际用户状态的变化,SDK 会自动处理用户状态变化。

0.7.0

"user-joined"

(user:RemoteUser) => void

远端用户或主播加入频道回调。

0.7.0

"user-left"

(user:RemoteUser) => void

远端用户或主播离开频道回调。

0.7.0

"user-published"

(user:RemoteUser, mediaType:TrackMediaType, auxiliary?: boolean) => void

该回调通知远端用户发布了新的音频轨道或者视频轨道。

你可以在该回调中订阅并播放远端用户的音视频轨道。

0.7.0

"user-unpublished"

(user:RemoteUser, mediaType:TrackMediaType, auxiliary?: boolean) => void

该回调通知远端用户取消发布音频轨道或者视频轨道。

0.7.0

"pub-media-reconnect-started"

( ) => void

推流重连开始

0.7.0

"pub-media-reconnect-succeeded"

(newRtmpUrl: string) => void

推流重连成功,返回新的推流地址

0.7.0

"pub-media-reconnect-failed"

() => void

推流重连失败

0.7.0

"sub-media-reconnect-started"

(subParam: SubscribeParam) => void

订阅重连开始

0.7.0

"sub-media-reconnect-succeeded"

(subParam: SubscribeParam, newRtmpUrl: string) => void

订阅重连成功,返回新的拉流地址

0.7.0

"sub-media-reconnect-failed"

(subParam: SubscribeParam) => void

订阅重连失败

0.7.0

接口详情

join()

加入频道,在同一个频道内的用户可以互相通话。

调用该方法加入频道时,本地会触发 "connection-state-change" 回调。

本端加入频道成功后,远端会触发 "user-joined" 回调。

类型签名

join(joinInfo: JoinParam): Promise<{
  remoteUsers: RemoteUser[];
  timeLeft: number;
}>;

入参:

参数

类型

描述

joinInfo

JoinParam

加入频道所需参数

返回:

参数

类型

描述

版本

remoteUsers

RemoteUser[];

远端用户列表

3.0.0

timeLeft

number

频道剩余时长

3.1.0

返回

Promise<{ remoteUsers: RemoteUser[]; timeLeft: number }>

leave()

离开频道,即挂断或退出通话。

调用该方法离开频道时,本地会触发 "connection-state-change" 回调。

远端会触发 "user-left" 回调。

类型签名

leave(): void;

返回

void

publish()

发布本地音视频轨道至频道中。

发布音视频轨道之后,远端会触发 "user-published" 回调。

类型签名

publish(): Promise<PublishResult>;

返回

Promise<PublishResult>

subscribe()

订阅远端用户的音视频轨道。

类型签名

subscribe(uid: string, mediaType: TrackMediaType, auxiliary?: boolean): Promise<RemoteTrack>;

参数

类型

描述

uid

string

远端用户id

mediaType

TrackMediaType

取消订阅的轨道媒体类型。

auxiliary

boolean

(Optional)如果订阅视频轨道,是否是订阅桌面共享视频流

返回

Promise<RemoteTrack>

unpublish()

取消发布本地音视频轨道。

取消发布音视频轨道之后,远端会触发 "user-unpublished" 回调。

类型签名

unpublish(): Promise<void>;

返回

Promise<void>

unsubscribe()

取消订阅远端用户的音视频轨道。

类型签名

unsubscribe(uid: string, mediaType?: TrackMediaType, auxiliary?: boolean): Promise<void>;

参数

类型

描述

uid

string

远端用户id。

mediaType

TrackMediaType

取消订阅的轨道媒体类型。

auxiliary

boolean

(Optional)如果是订阅视频轨道,是否是订阅桌面共享视频流

返回

Promise<void>

on()

监听一个指定事件并设置回调函数

类型签名

on(event: string, fn: Function): void;

参数

参数

类型

描述

event

string

监听的指定事件

fn

Function

监听事件触发时的回调函数

返回

void

off()

取消一个指定事件的监听回调函数

类型签名

off(event: string, fn: Function): void;

参数

参数

类型

描述

event

string

监听的指定事件

fn

Function

监听事件触发时的回调函数

返回

void

once()

监听一个指定事件一次,回调函数触发后移除

类型签名

once(event: string, fn: Function): void;

参数

参数

类型

描述

event

string

监听的指定事件

fn

Function

监听事件触发时的回调函数

返回

void

removeAllListeners()

取消该对象指定事件或所有事件上的监听回调

类型签名

removeAllListeners(event?: string): void;

参数

参数

类型

描述

event

string

(Optional)设置了指定事件时,对应监听回调函数将会清空。当参数未填写时,对象的所有事件的监听函数都将清空

返回

void

reportPusherNetStatus()

上报推流组件<live-pusher>的网络状态。

类型签名

reportPusherNetStatus(detail: LivePusherNetStatusDetail): void;

参数

参数

类型

描述

detail

Object

<live-pusher> 的 bindnetstatus 回调详情

示例

// WXML: <live-pusher bindnetstatus="onPusherNetStatusEvent" ... />

onPusherNetStatusEvent(event) {
  client.reportPusherNetStatus(event.detail);
}

返回

void

reportPusherStateChange()

上报推流组件<live-pusher>的状态变化。

类型签名

reportPusherStateChange(detail: LivePusherStateChangeDetail): void;

参数

参数

类型

描述

detail

Object

<live-pusher> 的 bindstatechange 回调详情

示例

// WXML: <live-pusher bindstatechange="onPusherStateChangeEvent" ... />

onPusherStateChangeEvent(event) {
  client.reportPusherStateChange(event.detail);
}

返回

void

reportPlayerNetStatus()

上报播放组件<live-player>的网络状态。

类型签名

reportPlayerNetStatus(subParam: SubscribeParam, detail: LivePlayerNetStatusDetail): void;

参数

参数

类型

描述

subParam

SubscribeParam

订阅参数,包括:uid, mediaType, auxiliary

detail

Object

<live-player> 的 bindnetstatus 回调详情

示例

// WXML: <live-player data-user-id="{{userId}}" bindnetstatus="onVideoPlayerNetStatus" ... />

onVideoPlayerNetStatus(event) {
  const userId = event.currentTarget.dataset.userId;
  const subParam = { uid: userId, mediaType: 'video', auxiliary: false };
  client.reportPlayerNetStatus(subParam, event.detail);
}

返回

void

reportPlayerStateChange()

上报播放组件<live-player>的状态变化。

类型签名

reportPlayerStateChange(subParam: SubscribeParam, detail: LivePlayerStateChangeDetail): void;

参数

参数

类型

描述

subParam

SubscribeParam

订阅参数,包括:uid, mediaType, auxiliary

detail

Object

<live-player> 的 bindstatechange 回调详情

示例

// WXML: <live-pusher bindstatechange="onPusherStateChangeEvent" ... />

onPusherStateChangeEvent(event) {
  client.reportPusherStateChange(event.detail);
}

返回

void

事件详情

"connection-state-change"

SDK 与服务器的连接状态发生改变回调。

类型签名

'connection-state-change': (curState: ConnectionState, prevState: ConnectionState, reason?: DisconnectedReason) => void;

"user-info-updated"

该回调用于提示用户状态变化。

在大部分情况下,你只需要监听 user-published 和 user-unpublished 就可以完成订阅、取消订阅、展示远端用户是否打开了摄像头和麦克风等工作,无需特别关注实际用户状态的变化,SDK 会自动处理用户状态变化。

类型签名

'user-info-updated': (uid: string, msg: 'mute-audio' | 'mute-video' | 'unmute-audio' | 'unmute-video') => void;

"user-joined"

远端用户加入频道回调。

类型签名

'user-joined': (user: RemoteUser) => void;

"user-left"

远端用户离开频道回调。

类型签名

'user-left': (user: RemoteUser) => void;

"user-published"

该回调通知远端用户发布了新的音频轨道或者视频轨道。

你可以在该回调中订阅并播放远端用户的音视频轨道。

类型签名

'user-published': (user: RemoteUser, mediaType: TrackMediaType, auxiliary?: boolean) => void;

"user-unpublished"

该回调通知远端用户取消发布音频轨道或者视频轨道。

类型签名

'user-unpublished': (user: RemoteUser, mediaType: TrackMediaType, auxiliary?: boolean) => void;

"pub-media-reconnect-started"

推流重连开始。

类型签名

'pub-media-reconnect-started': () => void;

"pub-media-reconnect-started"

推流重连开始。

类型签名

'pub-media-reconnect-started': () => void;

"pub-media-reconnect-succeeded"

推流重连成功,返回新的推流地址。

类型签名

'pub-media-reconnect-succeeded': (newRtmpUrl: string) => void;

"pub-media-reconnect-failed"

推流重连失败。

类型签名

'pub-media-reconnect-failed': () => void;

"sub-media-reconnect-started"

订阅重连开始。

类型签名

'sub-media-reconnect-started': (subParam: SubscribeParam) => void;

"sub-media-reconnect-succeeded"

订阅重连成功,返回新的拉流地址。

类型签名

'sub-media-reconnect-succeeded': (subParam: SubscribeParam, newRtmpUrl: string) => void;

"sub-media-reconnect-failed"

订阅重连失败。

类型签名

'sub-media-reconnect-failed': (subParam: SubscribeParam) => void;