Class Client
Constructors
constructor
new Client(options: object): Client
Client
类的构造选项。
NOTE:加解密功能仅在 IoT 场景适用。
参数
参数名 | 描述 |
---|---|
options: object |
|
返回值
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: UidType | 用户 ID 类型, 可选字段, 默认值为 INT 值 0。详见 UidType。 |
onSuccess: function | 方法调用成功时执行的回调函数。返回值为用户 ID。
|
onFailure: function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
leave
mute
mute(uid: number, target: string, onSuccess?: function, onFailure?: function): Promise<void>
停止接收远端用户的音视频流。
参数
参数名 | 描述 |
---|---|
uid: number | 远端用户的 ID。 |
target: string | 选择停止接收哪一种流,有三种选择:
|
onSuccess: function | 方法调用成功时执行的回调函数。无返回值。
|
onFailure: function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
muteLocal
muteLocal(target: string, onSuccess?: function, onFailure?: function): Promise<void>
停止发送本地用户的音视频流。
参数
参数名 | 描述 |
---|---|
target: string | 选择停止发送哪一种流,有三种选择:
|
onSuccess: function | 方法调用成功时执行的回调函数。无返回值。
|
onFailure: function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
on
on(event: "channel-media-relay-state", callback: function): void
跨频道媒体流转发状态回调。
当跨频道媒体流转发状态发生改变时,SDK 会触发该回调,并报告当前的转发状态以及相关的错误信息。
参数
参数名 | 描述 |
---|---|
event: "channel-media-relay-state" | 当前触发的事件。 |
callback: function | 具体的事件详情。
|
返回值
publish
publish(onSuccess?: function, onFailure?: function): Promise<string>
发布本地音视频流。
该方法将本地音视频流发布到 SD-RTN。互动直播中,调用该 API 的用户即默认为主播。
参数
参数名 | 描述 |
---|---|
onSuccess: function | 方法调用成功时执行的回调函数。返回值为音视频流的推流地址。
|
onFailure: function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
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: UidType | 用户 ID 类型, 可选字段, 默认值为 INT 值 0。详见 UidType。 |
onSuccess: function | 方法调用成功时执行的回调函数。返回值为用户 ID。
|
onFailure: function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
renewToken
setAudioCodec
setAudioCodec(audioCodec: AudioCodec): void
设置 IoT 设备使用的音频编码格式。
参数
参数名 | 描述 |
---|---|
audioCodec: AudioCodec | IoT 设备使用的音频编码格式,详见AudioCodec。
|
返回值
setRemoteVideoStreamType
setRemoteVideoStreamType(uid: number, streamType: 0 | 1, onSuccess?: function, onFailure?: function): Promise<void>
设置订阅的视频流类型。
参数
参数名 | 描述 |
---|---|
uid: number | 用户 ID。 |
streamType: 0 | 1 | |
onSuccess: function | 方法调用成功时执行的回调函数。
|
onFailure: function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
setRole
setRole(role: string, onSuccess?: function, onFailure?: function): Promise<void>
设置用户角色。
注:如果在主播已 publish
的状态下调用该方法将用户角色设置为 audience
,会导致之前的推流地址无效。
参数
参数名 | 描述 |
---|---|
role: string | |
onSuccess: function | 方法调用成功时执行的回调函数。无返回值。
|
onFailure: function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
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 开始向目标频道发送数据包。
- 如果转发成功,该回调中
Note
- 跨频道媒体流转发功能需要提交工单联系技术支持开通。
- 该功能不支持 String 型 UID。
- 请在成功加入频道后调用该方法。
- 直播场景下,只有主播可以调用该方法。
- 成功调用该方法后,若你想再次调用该方法,必须先调用 stopChannelMediaRelay 方法退出当前的转发状态。
参数
参数名 | 描述 |
---|---|
config: ChannelMediaRelayConfiguration | 跨频道媒体流转发参数配置,详见 ChannelMediaRelayConfiguration。 |
callback: function | 媒体流转发是否成功的回调。
|
返回值
stopChannelMediaRelay
stopChannelMediaRelay(callback: function): void
停止跨频道媒体流转发。
一旦停止转发,用户会退出所有的目标频道。
调用该方法会触发 Client.on("channel-media-relay-state")
回调。
- 如果成功停止跨频道媒体流转发,该回调中
state
为 0。 - 如果未成功停止跨频道媒体流转发,该回调中
state
为 3,code
错误码可能为 2 或 8,一般是在网络较差的情况下,退出的消息发送不成功导致的。你可以调用 Client.leave 离开频道来停止跨频道媒体流转发。
参数
参数名 | 描述 |
---|---|
callback: function | 停止跨频道媒体流转发是否成功的回调。
|
返回值
subscribe
subscribe(uid: number, options?: object, onSuccess?: function, onFailure?: function): Promise<object>
订阅远端音视频流。
该方法从 SD-RTN 订阅并接收远端音视频流。
参数
参数名 | 描述 |
---|---|
uid: number | 要订阅的远端用户 ID。 |
options: object | 设置是否订阅视频或音频。
|
onSuccess: function | 方法调用成功时执行的回调函数。返回值为音视频的拉流地址。
|
onFailure: function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
一个对象,包含以下数据:
url
:string 型,音视频流的拉流地址rotation
:number 型,视频帧顺时针旋转角度。
unmute
unmute(uid: number, target: string, onSuccess?: function, onFailure?: function): Promise<void>
恢复接收远端用户的音视频流。
参数
参数名 | 描述 |
---|---|
uid: number | 远端用户的 ID。 |
target: string | 选择停止接收哪一种流,有三种选择:
|
onSuccess: function | 方法调用成功时执行的回调函数。无返回值。
|
onFailure: function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
unmuteLocal
unmuteLocal(target: string, onSuccess?: function, onFailure?: function): Promise<void>
恢复发送本地用户的音视频流。
参数
参数名 | 描述 |
---|---|
target: string | 选择恢复发送哪一种流,有三种选择:
|
onSuccess: function | 方法调用成功时执行的回调函数。无返回值。
|
onFailure: function | 方法调用失败时执行的回调函数。返回值为错误码和错误信息。
|
返回值
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 重新开始跨频道媒体流转发。
Note
- 请在 startChannelMediaRelay 后调用该方法,更新媒体流转发的频道。
- 跨频道媒体流转发最多支持 4 个目标频道。
参数
参数名 | 描述 |
---|---|
config: ChannelMediaRelayConfiguration | 跨频道媒体流转发参数配置,详见 ChannelMediaRelayConfiguration。 |
callback: function | 更新目标频道是否成功的回调。
|
返回值
updatePlayerNetStatus
updatePlayerNetStatus(uid: number, detail: any): void
上报拉流过程中的网络状态。
参数
参数名 | 描述 |
---|---|
uid: number | 远端用户的用户 ID。 |
detail: any | 微信事件回调的 |
返回值
updatePlayerStateChange
updatePlayerStateChange(uid: number, detail: any): void
上报拉流状态。
参数
参数名 | 描述 |
---|---|
uid: number | 远端用户的用户 ID。 |
detail: any | 微信事件回调的 |
返回值
updatePusherNetStatus
updatePusherNetStatus(detail: any): void
上报推流过程中的网络状态。
参数
参数名 | 描述 |
---|---|
detail: any | 微信事件回调的 |
返回值
updatePusherStateChange
updatePusherStateChange(detail: any): void
上报推流状态。
参数
参数名 | 描述 |
---|---|
detail: any | 微信事件回调的 |
加密密钥。