统一状态码: code: 0
表示成功,code: -1
表示失败
初始化
回调名称: onInit
调用签名:
onInit({ code, msg })
参数说明:
code
(String): 初始化结果msg
(String): 初始化失败原因
返回码说明:
Code | 说明 |
---|---|
0 | 初始化成功 |
-1 | 网络波动导致请求失败(可重试连接) |
100006 | 请求头信息缺失必要参数:token |
100007 | 无效的 token |
100008 | token 验证失败 |
120001 | pad 对应的房间不存在 |
120002 | 连接云机失败,请重试! |
120003 | 中止推流错误,指令发送失败 |
120004 | 中止推流错误,指令服务异常 |
120005 | 实例不存在 |
120006 | token 绑定的 uuid 与请求 uuid 不一致 |
120007 | 原 token 信息不存在,请检查 |
120008 | 当前批次实例存在不同的推拉流方式,请联系管理员处理 |
120009 | token 绑定的 padCode 与请求 padCode 不一致 |
说明: 初始化回调。
start 调用成功
回调名称: onConnectSuccess
调用签名:
onConnectSuccess()
说明: 调用 start()
接口成功时触发。
start 调用失败
回调名称: onConnectFail
调用签名:
onConnectFail({ code })
参数说明:
code
: 错误码,详见错误码说明文档
说明: 调用 start()
接口失败时触发。
播放异常
回调名称: onErrorMessage
调用签名:
onErrorMessage({ code })
参数说明:
code
(Number): 错误类型0
: RTC 通道中断1
: 获取统计信息时出错
说明: 当播放出现异常时触发。
无操作时间到期
回调名称: onAutoRecoveryTime
调用签名:
onAutoRecoveryTime()
说明: 无操作时间到期时触发。
自动播放失败
回调名称: onAutoplayFailed
调用签名:
onAutoplayFailed(event)
参数说明:
userId
(String): 自动播放失败的流所属用户 ID(不带此参数时表示本地流播放失败)kind
(String): 自动播放失败的媒体类型("video"
或"audio"
)streamIndex
(Number): 视频流属性0
: 主流(默认摄像头/麦克风采集)1
: 屏幕流(共享视频或音频流)
mediaType
(Number): 远端媒体流类型1
: audio2
: video3
: audio and video
说明: 自动播放音视频流失败时触发。
运行信息
回调名称: onRunInformation
调用签名:
onRunInformation(stats)
参数说明:
stats
: 远端媒体流统计信息(统计周期:2 秒)userId
(String): 进房用户的userId
audioStats
(Object): 远端音频流信息videoStats
(Object): 远端视频流信息
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" | 视频编码格式 |
说明: 回调当前运行信息。
分辨率变化
回调名称: onChangeResolution
调用签名:
onChangeResolution({ from, to })
参数说明:
from
(Object): 旧分辨率对象width
: 旧宽度height
: 旧高度
to
(Object): 新分辨率对象width
(Number): 新宽度height
(Number): 新高度
说明: 用于监听分辨率变化,返回旧(from
)与新(to
)分辨率。
云端透传消息
回调名称: onTransparentMsg
调用签名:
onTransparentMsg(type, msg)
参数说明:
type
(String): 保留字段(当前默认填0
)msg
(String): 消息内容(字符串)
说明: 收到云端 app 透传消息时触发。
云机复制内容
回调名称: onOutputClipper
调用签名:
onOutputClipper(data)
参数说明:
data
(Object): 复制对象content
(String): 复制的内容
说明: 在云机复制内容时触发。
视频首帧渲染成功
回调名称: onRenderedFirstFrame
调用签名:
onRenderedFirstFrame()
说明: 视频首帧渲染成功时触发。
采集音频数据
回调名称: onAudioInit
调用签名:
onAudioInit(audioTrackSettings)
参数说明:
audioTrackSettings
(Object): 参数的详细说明:MediaTrackSettings - MDN Web Docs
说明: 采集音频数据,开始收取麦克风声音。
采集音频数据错误
onAudioError(event)
参数说明:
event.code
(String): 还可能返回如下错误码:REPEAT_CAPTURE
: 重复采集。GET_AUDIO_TRACK_FAILED
: 采集音频失败,请确认是否有可用的采集设备,或是否被其他 App 占用。STREAM_TYPE_NOT_MATCH
: 流类型不匹配
说明: 采集音频数据错误。
采集视频数据
回调名称: onVideoInit
调用签名:
onVideoInit(videoTrackSettings)
参数说明:
videoTrackSettings
(Object): 参数的详细说明:MediaTrackSettings - MDN Web Docs
说明: 采集视频数据, 开始收取摄像头画面。
采集视频数据错误
onVideoError(event)
参数说明:
event.code
(String): 还可能返回如下错误码:REPEAT_CAPTURE
: 重复采集。GET_AUDIO_TRACK_FAILED
: 采集音频失败,请确认是否有可用的采集设备,或是否被其他 App 占用。STREAM_TYPE_NOT_MATCH
: 流类型不匹配。
说明: 采集视频数据错误。
加载进度
回调名称: 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 第一帧渲染成功"}
}
说明: 加载进度相关回调。
WebSocket 状态
回调名称: onSocketCallback
调用签名:
onSocketCallback({ code })
参数说明:
code
(Number):0
: 连接成功1
: 连接关闭-1
: 连接失败
说明: WebSocket 状态信息回调。
用户进退房
回调名称: onUserLeaveOrJoin
调用签名:
onUserLeaveOrJoin({ type, userInfo })
参数说明:
type
(String):join
: 加入房间leave
: 离开房间
userInfo
(Object):userId
(String): 用户 IDextraInfo
(Object): 额外信息
说明: 用户加入或离开房间时触发。
群控错误
回调名称: onGroupControlError
调用签名:
onGroupControlError({ code, msg })
参数说明:
code
(String): 错误码TOKEN_ERR
: 获取 token 接口失败INVALID_TOKEN
: token 无效或已过期JOIN_ROOM_FAILED
: 进房失败REPEAT_JOIN
: 重复进房ROOM_FORBIDDEN
: 房间被封禁USER_FORBIDDEN
: 用户被封禁
msg
(String): 错误信息
说明: 群控相关错误回调。
远端指令异常
回调名称: onSendUserError
调用签名:
onSendUserError(error)
参数说明:
error.code
(String):USER_MESSAGE_TIMEOUT
: 发送消息超时USER_MESSAGE_BROKEN
: 通道断开,发送失败USER_MESSAGE_NO_RECEIVER
: 未找到接收者USER_MESSAGE_NOT_JOIN
: 发送方未加入房间USER_MESSAGE_UNKNOWN
: 未知错误
说明: 发送远端指令时出现异常。
远端用户退出房间
回调名称: onUserLeave
调用签名:
onUserLeave(event)
参数说明:
userId
(String): 离开房间的用户 IDreason
(Number): 离开原因QUIT
(0): 主动退出(调用leaveRoom
)DROPPED
(1): 掉线(如 token 过期、网络问题)SWITCH_TO_INVISIBLE
(2): 切换为不可见(调用setUserVisibility
)KICKED_BY_ADMIN
(3): 被管理员踢出
说明: 远端用户退出房间时触发。
ADB 命令结果
回调名称: onAdbOutput
调用签名:
onAdbOutput(event)
参数说明:
isSuccess
(Boolean): 是否成功content
(String): 成功后的返回结果
说明: 执行 ADB 命令后返回结果。
横竖屏切换
回调名称: onChangeRotate
调用签名:
onChangeRotate(type, info)
参数说明:
type
(Number):0
: 竖屏1
: 横屏
info
(Object): 屏幕尺寸信息width
(Number): VIDEO 宽度height
(Number): VIDEO 容器高度
说明: 横竖屏切换时触发。
网络质量信息
回调名称: onNetworkQuality
调用签名:
onNetworkQuality(uplinkNetworkQuality, downlinkNetworkQuality)
参数说明:
uplinkNetworkQuality
(Number): 上行网络质量downlinkNetworkQuality
(Number): 下行网络质量
取值范围:
值 | 说明 |
---|---|
UNKNOWN (0) | 网络质量未知 |
EXCELLENT (1) | 网络质量极好 |
GOOD (2) | 网络质量良好(与 EXCELLENT 主观感受相近,但码率可能略低) |
POOR (3) | 轻微卡顿,但基本不影响沟通 |
BAD (4) | 通信不流畅,建议降低采样率或切换为纯语音模式 |
VBAD (5) | 网络极差,基本无法沟通,建议提示用户网络较弱 |
DOWN (6) | 网络连接断开,无法通话 |
说明: 加入房间后,每 2 秒返回一次本端上行与下行网络质量信息。
连接状态发生变化
回调名称: onConnectionStateChanged
调用签名:
onConnectionStateChanged(e)
参数说明:
e.state
(Number): 连接状态
取值范围:
状态 | 描述 |
---|---|
0 | 进行连接前准备,锁定相关资源。 |
1 | 连接断开。 |
2 | 首次连接,正在连接中。 |
3 | 首次连接成功。 |
4 | 连接断开后重新连接中。 |
5 | 连接断开后重连成功。 |
6 | 处于 CONNECTION_STATE_DISCONNECTED 状态超过 10 秒,且期间重连未成功。SDK将继续尝试重连 |
说明: start成功后连接状态出现变更时触发。
视频注入摄像头结果回调
回调名称: onInjectVideoResult
调用签名:
onInjectVideoResult(type, data)
参数说明:
type
(String): 回调类型。可能的值为startVideoInjection
或stopVideoInjection
,表示开始或停止视频注入。data
(Object): 包含操作结果的对象。isSuccess
(Boolean): 表示操作是否成功。content
(String): 如果操作失败,此字段提供失败的原因。
说明: 此回调函数用于通知视频注入摄像头的开始或停止的结果。