Interface Client
Methods
destroy
init
join
join(channelKey: string, channel: string, uid: number | string, isAudioOnly: boolean, UidType?: UidType, onSuccess?: function, onFailure?: function): Promise<void>
加入频道。
参数
参数名 | 类型 | 描述 |
---|---|---|
channelKey | string | 在 app 服务器端生成的用于鉴权的 Token:
|
channel | string | 频道名,能标识直播频道的字符串。 |
uid | number | string | 指定用户的 ID。
|
isAudioOnly | boolean | 是否为纯音频场景:
|
UidType | 用户 ID 类型, 可选字段, 默认值为 INT 值 0。详见 UidType。 | |
onSuccess | function | 方法调用成功时执行的回调函数。返回值为用户 ID。
|
onFailure | function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
Promise<void>
leave
mute
mute(uid: number, target: string, onSuccess?: function, onFailure?: function): Promise<void>
停止接收远端用户的音视频流。
参数
参数名 | 类型 | 描述 |
---|---|---|
uid | number | 远端用户的 ID。 |
target | string | 选择停止接收哪一种流,有三种选择:
|
onSuccess | function | 方法调用成功时执行的回调函数。无返回值。
|
onFailure | function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
Promise<void>
muteLocal
muteLocal(target: string, onSuccess?: function, onFailure?: function): Promise<void>
停止发送本地用户的音视频流。
参数
参数名 | 类型 | 描述 |
---|---|---|
target | string | 选择停止发送哪一种流,有三种选择:
|
onSuccess | function | 方法调用成功时执行的回调函数。无返回值。
|
onFailure | function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
Promise<void>
on
on(event: "token-privilege-will-expire"): void
Token 服务即将过期回调。
在调用 join 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中如果 Token 即将失效,SDK 会提前 30 秒触发该回调,提醒 App 更新 Token。当收到该回调时,你需要重新在服务端生成新的 Token, 然后调用 renewToken 将新生成的 Token 传给 SDK。
参数
参数名 | 类型 | 描述 |
---|---|---|
event | "token-privilege-will-expire" |
返回值
void
on(event: "channel-media-relay-event", callback: function): void
跨频道媒体流转发事件回调。
该回调报告跨频道媒体流转发过程中发生的事件。
参数
参数名 | 类型 | 描述 |
---|---|---|
event | "channel-media-relay-event" | |
callback | function |
|
返回值
void
on(event: "channel-media-relay-state", callback: function): void
跨频道媒体流转发状态回调。
当跨频道媒体流转发状态发生改变时,SDK 会触发该回调,并报告当前的转发状态以及相关的错误信息。
参数
参数名 | 类型 | 描述 |
---|---|---|
event | "channel-media-relay-state" | |
callback | function |
|
返回值
void
publish
publish(onSuccess?: function, onFailure?: function): Promise<string>
发布本地音视频流。
该方法将本地音视频流发布到 SD-RTN。互动直播中,调用该 API 的用户即默认为主播。
参数
参数名 | 类型 | 描述 |
---|---|---|
onSuccess | function | 方法调用成功时执行的回调函数。返回值为音视频流的推流地址。
|
onFailure | function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
Promise<string>
rejoin
rejoin(channelKey: string, channel: string, uid: number | string, uids: number, isAudioOnly: boolean, UidType?: UidType, onSuccess?: function, onFailure?: function): Promise<void>
重新加入频道。
该方法让用户重新加入声网 RTC 频道。如果你的小程序中有切后台的场景需求,请确保使用该方法做好重连机制。
参数
参数名 | 类型 | 描述 |
---|---|---|
channelKey | string | 在 app 服务器端生成的用于鉴权的 Token:
|
channel | string | 频道名,能标识直播频道的字符串。 |
uid | number | string | 指定用户的 ID。
|
uids | number | 频道内已有用户的用户 ID 列表。 |
isAudioOnly | boolean | 是否为纯音频场景:
|
UidType | 用户 ID 类型, 可选字段, 默认值为 INT 值 0。详见 UidType。 | |
onSuccess | function | 方法调用成功时执行的回调函数。返回值为用户 ID。
|
onFailure | function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
Promise<void>
renewToken
renewToken(token: string, onSuccess?: function, onFailure?: function): Promise<void>
更新 Token。
该方法更新 Token。如果启用了 Token 机制,过一段时间后密钥会失效。 当收到 client.on("token-privilege-will-expire") 消息时,调用该 API 以更新 Token,否则 SDK 会无法和服务器建立连接。
参数
参数名 | 类型 | 描述 |
---|---|---|
token | string | 新的 Token。 |
onSuccess | function | 方法调用成功时执行的回调函数。
|
onFailure | function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
Promise<void>
setAudioCodec
setAudioCodec(audioCodec: AudioCodec): void
设置 IoT 设备使用的音频编码格式。
参数
参数名 | 类型 | 描述 |
---|---|---|
audioCodec | IoT 设备使用的音频编码格式,详见AudioCodec。
|
返回值
void
setRemoteVideoStreamType
setRemoteVideoStreamType(uid: number, streamType: 0 | 1, onSuccess?: function, onFailure?: function): Promise<void>
设置订阅的视频流类型。
如果发送端选择发送视频双流 (大流和小流),该方法可以在订阅端选择接收大流还是小流。如果不设置,订阅端默认接收大流。
参数
参数名 | 类型 | 描述 |
---|---|---|
uid | number | 用户 ID。 |
streamType | 0 | 1 | |
onSuccess | function | 方法调用成功时执行的回调函数。
|
onFailure | function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
Promise<void>
setRole
setRole(role: string, onSuccess?: function, onFailure?: function): Promise<void>
设置用户角色。
注:如果在主播已 publish
的状态下调用该方法将用户角色设置为 audience
,会导致之前的推流地址无效。
参数
参数名 | 类型 | 描述 |
---|---|---|
role | string | |
onSuccess | function | 方法调用成功时执行的回调函数。无返回值。
|
onFailure | function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
Promise<void>
startChannelMediaRelay
startChannelMediaRelay(config: ChannelMediaRelayConfiguration, callback: function): void
开始跨频道媒体流转发。
该方法可用于实现跨频道媒体流转发。
调用该方法后,SDK 会触发以下回调:
-
Client.on("channel-media-relay-state")
,报告当前的跨频道媒体流转发状态和错误码。-
如果转发成功,该回调中
state
为 2,code
为 0。 -
如果转发出现异常,该回调中
state
为 3,code
为错误码。你可以尝试再次调用本方法。
-
-
Client.on("channel-media-relay-event")
,报告跨频道媒体流转发相关的事件。-
如果转发成功,该回调中
code
为 4,表示 SDK 开始向目标频道发送数据包。
-
-
跨频道媒体流转发功能需要提交工单联系技术支持开通。
-
该功能不支持 String 型 UID。
-
请在成功加入频道后调用该方法。
-
直播场景下,只有主播可以调用该方法。
-
成功调用该方法后,若你想再次调用该方法,必须先调用 stopChannelMediaRelay 方法退出当前的转发状态。
client.startChannelMediaRelay(channelMediaConfig, function(e) {
if(e) {
utils.notification(`startChannelMediaRelay failed: ${JSON.stringify(e)}`);
} else {
utils.notification(`startChannelMediaRelay success`);
}
});
参数
参数名 | 类型 | 描述 |
---|---|---|
config | 跨频道媒体流转发参数配置,详见 ChannelMediaRelayConfiguration。 | |
callback | function | 媒体流转发是否成功的回调。
|
返回值
void
stopChannelMediaRelay
stopChannelMediaRelay(callback: function): void
停止跨频道媒体流转发。
一旦停止转发,用户会退出所有的目标频道。
调用该方法会触发 Client.on("channel-media-relay-state")
回调。
-
如果成功停止跨频道媒体流转发,该回调中
state
为 0。 -
如果未成功停止跨频道媒体流转发,该回调中
state
为 3,code
错误码可能为 2 或 8,一般是在网络较差的情况下,退出的消息发送不成功导致的。你可以调用 Client.leave 离开频道来停止跨频道媒体流转发。
stopChannelMediaRelay: function() {
client.stopChannelMediaRelay(function(e) {
if(e) {
utils.notification(`stopChannelMediaRelay failed: ${JSON.stringify(e)}`);
} else {
utils.notification(`stopChannelMediaRelay success`);
}
});
}
参数
参数名 | 类型 | 描述 |
---|---|---|
callback | function | 停止跨频道媒体流转发是否成功的回调。
|
返回值
void
subscribe
subscribe(uid: number, options?: object, onSuccess?: function, onFailure?: function): Promise<object>
订阅远端音视频流。
该方法从 SD-RTN 订阅并接收远端音视频流。
参数
参数名 | 类型 | 描述 |
---|---|---|
uid | number | 要订阅的远端用户 ID。 |
options | object | 设置是否订阅视频或音频。
|
onSuccess | function | 方法调用成功时执行的回调函数。返回值为音视频的拉流地址。
|
onFailure | function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
Promise<object>
unmute
unmute(uid: number, target: string, onSuccess?: function, onFailure?: function): Promise<void>
恢复接收远端用户的音视频流。
参数
参数名 | 类型 | 描述 |
---|---|---|
uid | number | 远端用户的 ID。 |
target | string | 选择停止接收哪一种流,有三种选择:
|
onSuccess | function | 方法调用成功时执行的回调函数。无返回值。
|
onFailure | function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
Promise<void>
unmuteLocal
unmuteLocal(target: string, onSuccess?: function, onFailure?: function): Promise<void>
恢复发送本地用户的音视频流。
参数
参数名 | 类型 | 描述 |
---|---|---|
target | string | 选择恢复发送哪一种流,有三种选择:
|
onSuccess | function | 方法调用成功时执行的回调函数。无返回值。
|
onFailure | function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
Promise<void>
unpublish
unsubscribe
updateChannelMediaRelay
updateChannelMediaRelay(config: ChannelMediaRelayConfiguration, callback: function): void
更新媒体流转发的目标频道。
成功开始跨频道转发媒体流后,如果你希望添加或删除媒体流转发的目标频道,可以调用该方法。
调用该方法后,SDK 会触发 Client.on("channel-media-relay-event")
回调。
-
如果更新成功,回调中
code
为 7。 -
如果更新失败,回调中
code
为 8,同时还会触发Client.on("channel-media-relay-state")
回调,其中state
为 3。出错后跨频道媒体流转发状态会被重置,你需要调用 startChannelMediaRelay 重新开始跨频道媒体流转发。
-
请在 startChannelMediaRelay 后调用该方法,更新媒体流转发的频道。
-
跨频道媒体流转发最多支持 4 个目标频道。
client.updateChannelMediaRelay(channelMediaConfig, function(e) {
if(e) {
utils.notification(`updateChannelMediaRelay failed: ${JSON.stringify(e)}`);
} else {
utils.notification(`updateChannelMediaRelay success`);
}
});
参数
参数名 | 类型 | 描述 |
---|---|---|
config | 跨频道媒体流转发参数配置,详见 ChannelMediaRelayConfiguration。 | |
callback | function | 更新目标频道是否成功的回调。
|
返回值
void
updatePlayerNetStatus
updatePlayerNetStatus(uid: number, e: any): void
上报拉流过程中的网络状态。
当收到 live-player 组件报告的网络状态通知时,你可以调用该接口将其上报给声网的数据中心。
参数
参数名 | 类型 | 描述 |
---|---|---|
uid | number | 远端用户的用户 ID。 |
e | any | live-player 组件报告的网络状态数据。
Note:要收到 live-player 组件报告的网络状态数据,你需要在创建 live-player 组件时注册监听 |
返回值
void
updatePlayerStateChange
updatePlayerStateChange(uid: number, e: any): void
上报拉流状态。
当收到 live-player 组件报告的拉流状态变化通知时,你可以调用该接口将其上报给声网的数据中心。
参数
参数名 | 类型 | 描述 |
---|---|---|
uid | number | 远端用户的用户 ID。 |
e | any | live-player 组件报告的拉流状态码。
Note:要收到 live-player 组件报告的拉流状态码,你需要在创建 live-player 组件时注册监听 |
返回值
void
updatePusherNetStatus
updatePusherNetStatus(e: any): void
上报推流过程中的网络状态。
当收到 live-pusher 组件报告的网络状态通知时,你可以调用该接口将其上报给声网的数据中心。
参数
参数名 | 类型 | 描述 |
---|---|---|
e | any | live-pusher 组件报告的网络状态数据。
Note:要收到 live-pusher 组件报告的网络状态通知,你需要在创建 live-pusher 组件时注册监听 |
返回值
void
updatePusherStateChange
updatePusherStateChange(e: any): void
上报推流状态。
当收到 live-pusher 组件报告的推流状态变化通知时,你可以调用该接口将其上报给声网的数据中心。
参数
参数名 | 类型 | 描述 |
---|---|---|
e | any | live-pusher 组件报告的推流状态码。
Note:要收到 live-pusher 组件报告的推流状态码,你需要在创建 live-pusher 组件时注册监听 |
返回值
void
方法调用成功时执行的回调函数。