DingRTCClient 提供音视频通话的核心功能,比如加入频道、发布和订阅音视频轨道等。您可以通过 createClient 创建一个 Client 对象。一个 Client 对象代表一个本地客户端。
属性列表
属性 | 类型 | 描述 | 支持的最低版本 |
channelName | string | 频道名称。 如果本地用户没有加入频道,该属性值为 undefined。 | 0.7.0 |
connectionState | sdk 实例与服务器连接状态。 | 0.7.0 | |
remoteUsers
| 远端用户信息列表,包含频道中各个远端用户的用户 ID 和轨道信息。 如果本地用户没有加入频道,则该列表为空。 | 0.7.0 | |
userId | string | 本地用户的用户 ID。 如果本地用户没有加入频道,该属性值为 undefined。 | 0.7.0 |
接口列表
接口 | 描述 | 支持的最低版本 |
加入频道,在同一个频道内的用户可以互相通话。 调用该方法加入频道时,本地会触发 "connection-state-change" 回调。 本端加入频道成功后,远端会触发 "user-joined" 回调。 | 0.7.0 | |
离开频道,即挂断或退出通话。 调用该方法离开频道时,本地会触发 "connection-state-change" 回调。 远端会触发 "user-left" 回调。 | 0.7.0 | |
发布本地音视频轨道至频道中。 发布音视频轨道之后,远端会触发 "user-published" 回调。 | 0.7.0 | |
取消发布本地音视频轨道。 取消发布音视频轨道之后,远端会触发 "user-unpublished" 回调。 | 0.7.0 | |
订阅远端用户的音视频轨道。 | 0.7.0 | |
取消订阅远端用户的音视频轨道。 | 0.7.0 | |
取消一个指定事件的监听回调函数。 | 0.7.0 | |
监听一个指定事件并设置回调函数。 | 0.7.0 | |
监听一个指定事件一次,回调函数触发后移除。 | 0.7.0 | |
取消该对象指定事件或所有事件上的监听回调。 | 0.7.0 | |
上报推流组件<live-pusher> 的网络状态。 | 0.7.0 | |
上报推流组件<live-pusher> 的状态变化。 | 0.7.0 | |
上报播放组件<live-player>的网络状态。 | 0.7.0 | |
上报播放组件<live-player>的状态变化。 | 0.7.0 |
事件列表
事件 | 事件参数 | 描述 | 支持的最低版本 |
(curState:ConnectionState, prevState:ConnectionState, reason?:DisconnectedReason) => void | SDK 与服务器的连接状态发生改变回调。 | 0.7.0 | |
(uid: string, msg: 'mute-audio' | 'mute-video' | 'unmute-audio' | 'unmute-video') => void | 该回调用于提示用户状态变化。 在大部分情况下,你只需要监听 user-published 和 user-unpublished 就可以完成订阅、取消订阅、展示远端用户是否打开了摄像头和麦克风等工作,无需特别关注实际用户状态的变化,SDK 会自动处理用户状态变化。 | 0.7.0 | |
(user:RemoteUser) => void | 远端用户或主播加入频道回调。 | 0.7.0 | |
(user:RemoteUser) => void | 远端用户或主播离开频道回调。 | 0.7.0 | |
(user:RemoteUser, mediaType:TrackMediaType, auxiliary?: boolean) => void | 该回调通知远端用户发布了新的音频轨道或者视频轨道。 你可以在该回调中订阅并播放远端用户的音视频轨道。 | 0.7.0 | |
(user:RemoteUser, mediaType:TrackMediaType, auxiliary?: boolean) => void | 该回调通知远端用户取消发布音频轨道或者视频轨道。 | 0.7.0 | |
( ) => void | 推流重连开始 | 0.7.0 | |
(newRtmpUrl: string) => void | 推流重连成功,返回新的推流地址 | 0.7.0 | |
() => void | 推流重连失败 | 0.7.0 | |
(subParam: SubscribeParam) => void | 订阅重连开始 | 0.7.0 | |
(subParam: SubscribeParam, newRtmpUrl: string) => void | 订阅重连成功,返回新的拉流地址 | 0.7.0 | |
(subParam: SubscribeParam) => void | 订阅重连失败 | 0.7.0 |
接口详情
join()
加入频道,在同一个频道内的用户可以互相通话。
调用该方法加入频道时,本地会触发 "connection-state-change" 回调。
本端加入频道成功后,远端会触发 "user-joined" 回调。
类型签名
join(joinInfo: JoinParam): Promise<{
remoteUsers: RemoteUser[];
timeLeft: number;
}>;
入参:
参数 | 类型 | 描述 |
joinInfo | 加入频道所需参数 |
返回:
参数 | 类型 | 描述 | 版本 |
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 | 取消订阅的轨道媒体类型。 | |
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 | 取消订阅的轨道媒体类型。 | |
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;