2025/01/09 11:59:51
错误码
声网 RTSA SDK 在运行过程中,可能通过如下方式返回错误码:
- 在方法调用失败的返回值中,返回一个负数,这个负数就对应着错误码的正数。
- 通过
on_error
回调报告错误码。
当收到错误码时,意味着 SDK 遇到了不可恢复的错误,需要 App 干预。本文列出常见错误码的详细含义及其解决方法。
通用错误
错误码 | 枚举值 | 说明 |
---|---|---|
0 | ERR_OKAY | 没有错误。 |
1 | ERR_FAILED | 通用错误。你可以根据日志文件排查问题。 |
2 | ERR_INVALID_PARAM | 方法中设置无效的参数,例如指定的频道命中含有非法字符。请重新设置参数。 |
3 | ERR_INVALID_STATE | 当前状态下调用 API 无效,例如关闭本地采集后就无法发布音视频。 |
4 | ERR_NOT_SUPPORTED | 当前状态下不支持该操作。 |
6 | ERR_NOT_IN_CHANNEL | 当前连接状态是未成功加入频道。 |
7 | ERR_NOT_INITIALIZED | 服务未完成初始化。请先调用 init 方法。 |
8 | ERR_NOT_EXIST_CONNECTION | 连接不存在。 |
10 | ERR_TIMEDOUT | API 调用超时。有些方法调用需要 SDK 返回结果,如果处理时间过长(超过 10 秒),SDK 会返回该错误。 |
11 | ERR_NO_MEMORY | 内存不足。 |
12 | ERR_CALL_FAILED | API 调用失败。 |
14 | ERR_NET_DOWN | 当前网络不可用。你需要检查系统网络连接状态。 |
17 | ERR_JOIN_CHANNEL_REJECTED | 加入频道请求被拒绝,可能是因为本地用户已在频道内。你需要调整代码逻辑,避免用户加入同一频道。 |
18 | ERR_LEAVE_CHANNEL_REJECTED | 离开频道被拒。如果本地用户已经不在频道内,试图调用 API 离开频道时会返回该错误。 |
23 | ERR_LICENSE_VERIFICATION_FAILURE | License 未通过验证导致的 SDK 初始化失败。该错误码仅在老版本的 License 下会反馈。 |
30 | ERR_ENCRYPTION | 加密错误。 |
31 | ERR_DECRYPTION | 解密错误。 |
传输相关
错误码 | 枚举值 | 说明 |
---|---|---|
101 | ERR_INVALID_APP_ID | 不是有效的 App ID。请更换有效的 App ID 重新加入频道。 |
102 | ERR_INVALID_CHANNEL_NAME | 不是有效的频道名。可能的原因是设置的参数数据类型不正确。请更换有效的频道名重新加入频道。 |
103 | ERR_NO_SERVER_RESOURCES | 无法获取指定区域的服务器资源。 |
105 | ERR_LOOKUP_CHANNEL_REJECTED | 声网服务器拒绝了查询频道的请求。你需要检查 RTC Token 是否有效。 |
107 | ERR_OPEN_CHANNEL_REJECTED | 声网服务器拒绝了创建频道的请求。你需要检查 RTC Token 是否有效。 |
109 | ERR_TOKEN_EXPIRED | 当前使用的 RTC Token 已过期。你需要重新在服务端申请生成 RTC Token 并调用 Token 过期可能的原因有:
|
110 | ERR_INVALID_TOKEN | Token 无效。可能的原因是:
|
115 | ERR_DYNAMIC_TOKEN_BUT_USE_STATIC_KEY | 在控制台中启用了 Token 鉴权,但调用 join 加入频道时传入的是 App ID。 |
119 | ERR_SET_CLIENT_ROLE_NOT_AUTHORIZED | 切换用户角色失败。请尝试重新加入频道。 |
120 | ERR_DECRYPTION_FAILED | 解密失败。可能的原因是用户尝试使用不同的密码加入频道。请检查你的设置或尝试重新加入频道。 |
121 | ERR_OPEN_CHANNEL_INVALID_TICKET | 打开频道的信令错误。请尝试重新加入频道。 |
122 | ERR_OPEN_CHANNEL_TRY_NEXT_VOS | 系统在尝试切换服务器。通常不需要额外处理,系统会自动尝试切换服务器以打开频道。 |
123 | ERR_CLIENT_IS_BANNED_BY_SERVER | 该客户端被服务器禁用。你需要检查 License 是否正确。 |
音频相关
错误码 | 枚举值 | 说明 |
---|---|---|
200 | ERR_AUDIO_CODEC_NOT_SUPPORT | SDK 不支持当前使用的音频编解码器。 |
201 | ERR_AUDIO_INVALID_PCM_LEN | PCM 音频数据长度无效。 |
202 | ERR_AUDIO_INVALID_CODEC_PARAM | 音频编解码器参数无效。 |
221 | ERR_AUDIO_DECODER_NOT_MATCH | 音频解码器和输入的音频数据类型不匹配。音频编解码器的发送和接收格式必需一致。 |
222 | ERR_AUDIO_DECODER_NOT_ENABLE | 音频解码器模块未开启。 |
视频相关
错误码 | 枚举值 | 说明 |
---|---|---|
300 | ERR_VIDEO_SEND_OVER_BANDWIDTH_LIMIT | 视频数据发送太快,且超出了宽带限制。当前发送速度下很可能发生丢包。 |
301 | ERR_VIDEO_SEND_PACKETIZE_FAILED | 视频包打包失败。 |
RDT 相关
错误码 | 枚举值 | 说明 |
---|---|---|
600 | ERR_RDT_USER_NOT_EXIST | 频道内不存在该远端用户。 |
601 | ERR_RDT_USER_NOT_READY | 未成功与远端用户建立连接。你需要等 RDT 通道的连接状态变为 RDT_STATE_OPENED 后重新调用方法。 |
602 | ERR_RDT_DATA_BLOCKED | 发送缓冲区已满。你需要等 RDT 通道的连接状态变为 RDT_STATE_OPENED 后重新调用方法。 |
603 | ERR_RDT_CMD_EXCEED_LIMIT | 控制消息的数量超过限制。每秒发送的控制消息包不能超过 4 Mbps。 |
604 | ERR_RDT_DATA_EXCEED_LIMIT | 数据消息大小超出限制。 |
RTM 相关
错误码 | 枚举值 | 说明 |
---|---|---|
1001 | ERR_RTM_NOT_LOGINED | 未登录 RTM 系统。 |
1002 | ERR_RTM_HAD_LOGINED | 已登录 RTM 系统。 |
1003 | ERR_RTM_SEND_TO_SELF | 在 rtmUid 参数中误填了自己的用户 ID。 |
1004 | ERR_RTM_EXCEED_MSG_SIZE | RTM 消息长度超出限制。消息长度至多为 31 KB。 |
1005 | ERR_RTM_EXCEED_MSG_CNT | RTM 消息发送频率超出限制。每秒至多发送 60 条消息。 |
1006 | ERR_RTM_EXCEED_TCP_SKB | 消息通道已满。等待一秒后重新发送。 |