回调函数
回调函数是sdk在一些特定场景下触发的接口,根据具体的业务场景来选择是否实现。
回调函数列表
统一状态码:code: 0 成功,-1 失败
onInit
参数:
onInit({code, msg})
code
: 初始化结果(0:成功,-1:失败)msg
: 初始化失败原因
说明:
初始化回调。
onConnectSuccess
参数:
无
说明:
调用 start()
接口成功时触发。
onErrorMessage
参数:
onErrorMessage({code})
code
: 错误类型0
: RTC 通道中断1
: 获取统计信息时出错
说明:
当播放出现异常时触发。
onConnectFail
参数:
onConnectFail({code})
code
: 错误码,详见错误码说明文档
说明:
调用 start()
接口失败时触发。
onAutoRecoveryTime
参数:
无
说明:
无操作时间到期时触发。
onAutoplayFailed
参数:
onAutoplayFailed(event)
userId
: 自动播放失败的流所属的用户 ID(不带此参数时表示本地流播放失败)kind
: 自动播放失败的媒体类型("video" 或 "audio")streamIndex
: 视频流属性0
: 主流(默认摄像头/麦克风采集的视频/音频)1
: 屏幕流(共享视频或音频流)
mediaType
: 远端媒体流的类型1
: audio2
: video3
: audio and video
说明:
自动播放音视频流失败时触发。
onRunInformation
参数:
onRunInformation(stats)
stats
: 远端媒体流统计信息,统计周期为 2suserId
: 进房用户的userId
audioStats
: 远端音频流信息videoStats
: 远端视频流信息
audioStats
参数名称 | 类型 | 描述 |
---|---|---|
audioLossRate | number | 音频丢包率。统计周期内的音频下行丢包率,取值范围为 [0, 1] |
receivedKBitrate | number | 接收码率。统计周期内的音频接收码率,单位为 kbps |
stallCount | number | undefined | 统计周期内的卡顿次数 |
stallDuration | number | undefined | 统计周期内的卡顿时长,单位为 ms |
totalRtt | number | 全链路往返传输时延,单位 ms 注:对于 FireFox 浏览器,此值可能不准确 |
statsInterval | number | 统计间隔。此次统计周期的间隔,单位为 ms |
rtt | number | 往返时延,单位:ms |
jitterBufferDelay | number | 抖动延迟,单位:ms |
numChannels | number | 声道数 |
receivedSampleRate | number | 接收侧采样率 |
concealedSamples | number | 音频丢包补偿 (PLC) 样点总个数 |
concealmentEvent | number | 音频丢包补偿 (PLC) 累计次数 |
videoStats
参数名称 | 类型 | 描述 |
---|---|---|
width | number | 视频宽度,单位:px |
height | number | 视频高度,单位:px |
videoLossRate | number | 视频丢包率。统计周期内的视频下行丢包率,取值范围为 [0, 1] |
receivedKBitrate | number | 接收码率。统计周期内的视频接收码率,单位为 kbps |
decoderOutputFrameRate | number | 解码器输出帧率。统计周期内的视频解码器输出帧率,单位 fps |
stallCount | number | undefined | 统计周期内的卡顿次数 |
stallDuration | number | undefined | 统计周期内的卡顿时长,单位为 ms |
totalRtt | number | 全链路往返传输时延,单位ms 注意:对于 FireFox 浏览器,此值不准确。 |
isScreen | boolean | 所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流 |
statsInterval | number | 统计间隔。此次统计周期的间隔,单位为 ms |
rtt | number | 客户端到服务端数据传输的往返时延,单位:ms |
codecType | "H264" | "VP8" | 视频编码格式。 - "H264" :H.264 格式- "VP8" :VP8 格式 |
说明:
回调当前运行信息。
onChangeResolution
参数:
onChangeResolution(width, height)
width
: 当前分辨率宽height
: 当前分辨率高
说明:
当分辨率发生变化时触发。
onTransparentMsg
参数:
onTransparentMsg(type, msg)
type
: 保留字段,目前没有用,默认填 0。msg
: 消息内容,字符串。
说明:
当收到云端 app 透传的消息时触发。
onOutputClipper
参数:
onOutputClipper(msg)
msg
: 复制的消息内容,字符串。
说明:
当在云机复制内容时触发。
onRenderedFirstFrame
参数:
无
说明:
视频首帧渲染成功时触发。
onAudioError
参数:
onAudioError({code, msg})
msg
: 错误信息API_NOT_AVAILABLE
: 当前浏览器不支持麦克风功能
说明:
获取音频相关权限失败。
onAudioInit
参数:
onAudioInit({code})
说明:
获取音频权限成功,且会收取麦克风声音。
onAudioPause
参数:
onAudioPause({code})
说明:
暂停声音收取成功回调。
onProgress
参数:
onProgress({code, msg})
- 示例数据:
{ "WS_CONNECT": {"code": 100, "msg": "WS开始连接"}, "WS_SUCCESS": {"code": 101, "msg": "WS连接成功"}, "WS_CLOSE": {"code": 102, "msg": "WS连接关闭"}, "WS_ERROR": {"code": 103, "msg": "WS连接出错"}, "OWN_JOIN_ROOM": {"code": 200, "msg": "收到加入房间信息"}, "RECEIVE_OFFER": {"code": 201, "msg": "设置 offer 信息成功"}, "RECEIVE_OFFER_ERR": {"code": 202, "msg": "设置 offer 信息失败"}, "SEND_ANSWER": {"code": 203, "msg": "发送 answer 信息"}, "SEND_ANSWER_ERR": {"code": 204, "msg": "发送 answer 信息失败"}, "RECEIVE_ICE": {"code": 205, "msg": "添加 ICE 信息成功"}, "RECEIVE_ICE_ERR": {"code": 206, "msg": "添加 ICE 信息失败"}, "SEND_ICE": {"code": 207, "msg": "发送 ICE 信息"}, "RTC_CONNECTING": {"code": 300, "msg": "RTC 正在连接"}, "RTC_CONNECTED": {"code": 301, "msg": "RTC 连接成功"}, "RTC_DISCONNECTED": {"code": 302, "msg": "RTC 断开连接"}, "RTC_CLOSE": {"code": 303, "msg": "RTC 连接关闭"}, "RTC_FAILED": {"code": 304, "msg": "RTC 连接失败"}, "RTC_TRACK_VIDEO": {"code": 305, "msg": "RTC 接收 VIDEO 流"}, "RTC_TRACK_VIDEO_LOAD": {"code": 306, "msg": "RTC 接收 VIDEO 流后在 VIDEO 中加载成功"}, "RTC_CHANNEL_OPEN": {"code": 307, "msg": "RTC 消息通道连接成功"}, "RTC_CHANNEL_ERR": {"code": 308, "msg": "RTC 消息通道连接失败"}, "VIDEO_FIRST_FRAME": {"code": 309, "msg": "VIDEO 加载成功当未收到云机的 UI 信息"}, "VIDEO_FIRST_FRAME": {"code": 310, "msg": "VIDEO 第一帧渲染成功"} }
- 示例数据:
说明:
加载进度回调。
onSocketCallback
参数:
onSocketCallback({code})
code
:0
: 连接成功1
: 连接关闭-1
: 连接失败
说明:
WebSocket 相关回调。
onUserLeaveOrJoin
参数:
onUserLeaveOrJoin({type, userInfo})
type
:join
表示加入房间,leave
表示离开房间userInfo
:userId
: 用户 IDextraInfo
: 额外信息
说明:
用户进房和退房间回调。
onGroupControlError
参数:
onGroupControlError({code, msg})
code
: 错误码TOKEN_ERR
: 获取 token 接口失败INVALID_TOKEN
: 使用的 token 无效或已过期JOIN_ROOM_FAILED
: 进房失败REPEAT_JOIN
: 重复进房ROOM_FORBIDDEN
: 房间被封禁导致进房失败USER_FORBIDDEN
: 用户被封禁导致进房失败
msg
: 错误信息
说明:
群控错误相关回调。
onSendUserError
参数:
onSendUserError(error)
- 错误码:
USER_MESSAGE_TIMEOUT
: 发送消息超时USER_MESSAGE_BROKEN
: 通道断开,发送失败USER_MESSAGE_NO_RECEIVER
: 找不到接收者,请检查传入的 userId 是否正确USER_MESSAGE_NOT_JOIN
: 消息发送方没有加入房间USER_MESSAGE_UNKNOWN
: 消息未知错误
- 错误码:
说明:
给远端发送指令信息出现异常。
onUserLeave
参数:
onUserLeave(event)
userId
: 离开房间的远端用户 ID。reason
: 表示用户离开房间的原因。QUIT
(0)
远端用户调用leaveRoom
主动退出房间。DROPPED
(1)
远端用户因 Token 过期或网络原因等掉线。SWITCH_TO_INVISIBLE
(2)
远端用户调用setUserVisibility
切换至不可见状态。KICKED_BY_ADMIN
(3)
服务端调用 OpenAPI 将远端用户踢出房间。
说明:
远端用户退出房间回调
onAdbOutput
参数:
onAdbOutput(event)
isSuccess
: 是否执行成功 返回Boolean 值。content
: 执行成功后的结果。
说明:
执行ADB命令后结果回调