Class: Client

Client

请使用 WebRTC2#createClient 创建 Client对象。


new Client()

Methods


addTasks(options)

增加互动直播推流任务

Parameters:
Name Type Description
options Object

推流任务列表

Properties
Name Type Description
rtmpTasks Array.<RTMPTask>

推流任务

Returns:
Type
Promise

deleteTasks(options)

删除互动直播推流任务

Parameters:
Name Type Description
options Object
Properties
Name Type Argument Description
taskIds Array.<string> <optional>

该推流任务的id

Returns:
Type
Promise

destroy()

销毁实例

Parameters:
Type Description
Void

getChannelInfo()

获取当前通话信息

Returns:
Type
Object

getConnectionState()

主动获取网络连接状态。
推荐用于以下场景:

  • 在 App 异常重启时,可以调用本接口主动获取当前客户端与服务器的连接状态,以做到本地与服务器状态的对齐。
  • 在实时音视频通话等业务场景中,主动获取房间的网络连接状态,以此完成上层业务逻辑。

SDK 与服务器的连接状态,共有以下 4 种:

  • DISCONNECTED:网络连接断开。
    该状态表示 SDK 处于:
  • 调用Client.join加入房间前的初始化阶段。
  • 调用Client.leave离开房间之后。
  • CONNECTING:建立网络连接中。
    该状态表示 SDK 处于:
  • 调用Client.join之后正在与指定房间建立连接。
  • 通话过程中,连接中断自动重连。
  • CONNECTED:已连接。
    该状态表示用户已经成功加入房间,可以在房间内发布或订阅媒体流。
  • DISCONNECTING:正在断开连接。
  • 在调用 Client.leave 的时候为此状态。
Returns:
Type
String

getLocalAudioStats()

获取本地发布流的音频统计数据

Returns:
Type
Promise

getLocalVideoStats()

获取本地发布流的音频统计数据

Returns:
Type
Promise

getRemoteAudioStats()

获取远端订阅流的音频统计数据

Returns:
Type
Promise

getRemoteVideoStats()

获取远端订阅流的视频统计数据

Returns:
Type
Promise

getSessionStats()

获取与会话的连接状况统计数据

Returns:
Type
Promise

getSystemStats()

获取系统电量

Returns:
Type
Promise

getTransportStats()

获取与网关的连接状况统计数据

Returns:
Type
Promise

join(options)

加入频道

Parameters:
Name Type Description
options Object
Properties
Name Type Argument Description
channel String

频道名称

uid Number

用户唯一标识(整数,建议五位数以上)

joinChannelLiveConfig Object <optional>

加入房间互动直播相关参数

Properties
Name Type Argument Description
liveEnable Boolean <optional>

是否旁路直播

joinChannelRecordConfig Object <optional>

加入房间录制相关参数

Properties
Name Type Argument Description
isHostSpeaker Boolean <optional>

是否是主讲人

recordAudio Boolean <optional>

是否开启音频实时音录制,0不需要,1需要(默认0)

recordVideo Boolean <optional>

是否开启视频实时音录制,0不需要,1需要(默认0)

recordType Number <optional>

录制模式,0混单(产生混合录制文件+单独录制文件) 1只混(只产生混合录制文件) 2只单(只产生单独录制文件)

Returns:
Type
Promise

leave()

离开频道

Parameters:
Type Description
Void
Returns:
Type
null

publish(localStream)

发布视频

Parameters:
Name Type Description
localStream Stream
Returns:
Type
Promise

setChannelProfile(options)

设置房间模型

Parameters:
Name Type Description
options Object
Properties
Name Type Argument Description
mode Object <optional>

房间属性,"rtc": 通信场景,"live": 直播场景

Returns:
Type
null

setClientRole(role)

设置用户角色。默认情况下用户以主播角色加入房间。
在加入房间前,用户可以调用本接口设置本端模式为观众或主播模式。在加入房间后,用户可以通过本接口切换用户模式。
用户角色支持设置为主播(host)或观众(audience),主播和观众的权限不同:

  • 主播:可以操作摄像头等音视频设备、发布流、配置互动直播推流任务、上下线对房间内其他用户可见。
  • 观众:观众只能接收音视频流,不支持操作音视频设备、配置互动直播推流任务、上下线不通知其他用户。
注意:

可以在加入房间之前或者之后设置。

相关回调:

如果您在加入房间后调用该方法切换用户角色,调用成功后,会触发以下回调:

  • 主播切换为观众,本地触发client-role-changed回调,远端触发peer-offline回调
  • 观众切换为主播,本地触发client-role-changed回调,远端触发peer-online回调
Parameters:
Name Type Description
role String

用户角色。可设置为:

  • host:直播模式中的主播,可以发布和接收音视频流。如果用户之前已经发布了音频或视频,切换到主播时会自动恢复发布音频或视频流。
  • audience: 直播模式中的观众,只能接收音视频流。主播模式切换到观众模式后,会自动停止发送音视频流。
Fires:
Returns:
Type
Promise

setRemoteVideoStreamType(stream, highOrLow:)

中途更新订阅的视频分辨率。

Parameters:
Name Type Description
stream Stream

参数

highOrLow: Number

0是小流,1是大流

Returns:
Type
Promise

subscribe(remoteStream)

订阅远端音视频流

Parameters:
Name Type Description
remoteStream Stream
Returns:
Type
Promise

unpublish(localStream)

取消发布本地音视频流

Parameters:
Name Type Description
localStream Stream
Returns:
Type
Promise

unsubscribe(remoteStream)

取消订阅远端音视频流

Parameters:
Name Type Description
remoteStream Stream
Returns:
Type
Promise

updateTasks(options)

更新互动直播推流任务

Parameters:
Name Type Description
options Object
Properties
Name Type Description
rtmpTasks Array.<RTMPTask>

推流任务

Returns:
Type
Promise

Events


active-speaker

该事件会返回当前频道内声音最大的用户的uid。

Type: object
Properties:
Name Type Description
uid number

主播uid


client-banned

该事件表示指定主播被踢出房间

Type: object
Properties:
Name Type Description
uid number

主播uid


client-banned

该事件表示指定主播被踢出房间

Type: object
Properties:
Name Type Description
uid number

主播uid


client-role-changed

本地用户角色发生了变化

Type: object
Properties:
Name Type Description
role 'host' | 'audience'

变化后的角色


mute-audio

该事件表示指定主播将麦克风静音

Type: object
Properties:
Name Type Description
uid number

主播uid


mute-video

该事件表示指定主播将视频静音

Type: object
Properties:
Name Type Description
uid number

主播uid


peer-leave

该事件表示有主播离开房间

Type: object
Properties:
Name Type Description
uid number

主播uid


peer-online

该事件表示有主播加入房间

Type: object
Properties:
Name Type Description
uid number

主播uid


stopScreenSharing

该事件表示本地的屏幕共享停止了

Type: object

stream-added

远端用户发布了一个流的通知。
收到远端流之后,可通过 Client#subscribe 订阅远端流。

Type: object
Properties:
Name Type Description
stream Stream

新增的远端流


stream-removed

该事件表示指定远端流被移除了

Type: object
Properties:
Name Type Description
stream Stream

远端流


stream-subscribed

订阅远端流成功的通知。
订阅远端流成功后,可通过 Stream#setRemoteRenderMode 设置远端渲染宽高等属性,通过 Stream#play 播放远端流。

Type: object
Properties:
Name Type Description
stream Stream

新订阅远端流


unmute-audio

该事件表示指定主播将麦克风取消静音

Type: object
Properties:
Name Type Description
uid number

主播uid


unmute-video

该事件表示指定主播将视频取消静音

Type: object
Properties:
Name Type Description
uid number

主播uid