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