错误代码表示 SDK 运行时出现了(网络或媒体相关的)错误。通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。 比如启动通话失败时,SDK 会上报 ARErrorCodeStartCall = 1002 错误。App可以提示用户启动通话失败,并调用 leaveChannel 退出频道。
typedef NS_ENUM(NSInteger, ARErrorCode) {
/**
0: 没有错误。
*/
ARErrorCodeNoError = 0,
/**
1: 一般性的错误(没有明确归类的错误原因)。
*/
ARErrorCodeFailed = 1,
/**
2: API 调用了无效的参数。例如指定的频道名含有非法字符。
*/
ARErrorCodeInvalidArgument = 2,
/**
3: SDK 未准备好。
处理方法:
* 检查音频设备状态
* 检查程序集完整性
* 尝试重新初始化 SDK
*/
ARErrorCodeNotReady = 3,
/**
4: SDK 当前状态不支持此操作,因此不能进行此操作。
*/
ARErrorCodeNotSupported = 4,
/**
5: 调用被拒绝。仅供 SDK 内部使用,不通过 API 或者回调事件返回给 App。
*/
ARErrorCodeRefused = 5,
/**
6: 传入的缓冲区大小不足以存放返回的数据。
*/
ARErrorCodeBufferTooSmall = 6,
/**
7: SDK 尚未初始化,就调用其 API。请确认在调用 API 之前已创建 ARtcEngineKit 对象并完成初始化。
*/
ARErrorCodeNotInitialized = 7,
/**
9: 没有操作权限,请检查用户是否授予 app 音视频设备使用权限。
*/
ARErrorCodeNoPermission = 9,
/**
10: API 调用超时。有些 API 调用需要 SDK 返回结果,如果 SDK 处理时间过长,超过 10 秒没有返回,会出现此错误。
*/
ARErrorCodeTimedOut = 10,
/**
11: 请求被取消。仅供 SDK 内部使用,不通过 API 或者回调事件返回给 App。
*/
ARErrorCodeCanceled = 11,
/**
12: 调用频率太高。仅供 SDK 内部使用,不通过 API 或者回调事件返回给 App。
*/
ARErrorCodeTooOften = 12,
/**
13: SDK 内部绑定到网络 Socket 失败。仅供 SDK 内部使用,不通过 API 或者回调事件返回给 App。
*/
ARErrorCodeBindSocket = 13,
/**
14: 网络不可用。仅供 SDK 内部使用,不通过 API 或者回调事件返回给 App。
*/
ARErrorCodeNetDown = 14,
/**
15: 没有网络缓冲区可用。仅供 SDK 内部使用,不通过 API 或者回调事件返回给 App。
*/
ARErrorCodeNoBufs = 15,
/**
17: 加入频道被拒绝。
一般有以下原因:
* 用户已进入频道,再次调用加入频道的 API,例如 joinChannelByToken,会返回此错误。停止调用该 API 即可。
* 用户在做 Echo 测试时尝试加入频道。等待 Echo test 结束后再加入频道即可。
*/
ARErrorCodeJoinChannelRejected = 17,
/**
18: 离开频道失败。
一般有以下原因:
* 用户已离开频道,再次调用退出频道的 API,例如 leaveChannel,会返回此错误。停止调用该 API 即可。
* 用户尚未加入频道,就调用退出频道的 API。这种情况下无需额外操作。
*/
ARErrorCodeLeaveChannelRejected = 18,
/**
19: 资源已被占用,不能重复使用。
*/
ARErrorCodeAlreadyInUse = 19,
/**
20: SDK 放弃请求,可能由于请求次数太多。
*/
ARErrorCodeAbort = 20,
/**
21: Windows 下特定的防火墙设置导致 SDK 初始化失败然后崩溃。
*/
ARErrorCodeInitNetEngine = 21,
/**
22: 当用户 App 占用资源过多,或系统资源耗尽时,SDK 分配资源失败会返回该错误。
*/
ARErrorCodeResourceLimited = 22,
/**
101: 不是有效的 App ID。请更换有效的 App ID 重新加入频道。
*/
ARErrorCodeInvalidAppId = 101,
/**
102: 不是有效的频道名。请更换有效的频道名重新加入频道。
*/
ARErrorCodeInvalidChannelId = 102,
/**
109: 当前使用的 Token 过期,不再有效。
connectionChangedToState 回调中 reason 参数的 ARConnectionChangedTokenExpired(9)。
一般有以下原因:
* Token 授权时间戳无效:Token 授权时间戳为 Token 生成时的时间戳,自 1970 年 1 月 1 日开始到当前时间的描述。授权该 Token 在生成后的 24 小时内可以访问 anyRTC 服务。如果 24 小时内没有访问,则该 Token 无法再使用。需要重新在服务端申请生成 Token。
* Token 服务到期时间戳已过期:用户设置的服务到期时间戳小于当前时间戳,无法继续使用 anyRTC 服务(比如正在进行的通话会被强制终止);设置服务到期时间并不意味着 Token 失效,而仅仅用于限制用户使用当前服务的时间。需要重新在服务端申请生成 Token。
*/
ARErrorCodeTokenExpired = 109,
/**
110: 生成的 Token 无效。
connectionChangedToState 回调中 reason 参数的 ARConnectionChangedInvalidToken(8)。
一般有以下原因:
* 用户在控制台上启用了 App Certificate,但仍旧在代码里仅使用了 App ID。当启用了 App Certificate,必须使用 Token。
* 字段 uid 为生成 Token 的必须字段,用户在调用 joinChannelByToken 加入频道时必须设置相同的 uid。
*/
ARErrorCodeInvalidToken = 110,
/**
111: 网络连接中断。仅适用于 anyRTC Web SDK。
*/
ARErrorCodeConnectionInterrupted = 111,
/**
112: 网络连接丢失。仅适用于 anyRTC Web SDK。
*/
ARErrorCodeConnectionLost = 112,
/**
113: 在调用 sendStreamMessage 时,如果用户不在频道内,会发生该错误。
*/
ARErrorCodeNotInChannel = 113,
/**
114: 在调用 sendStreamMessage 时,当发送的数据长度大于 1024 个字节时,会发生该错误。
*/
ARErrorCodeSizeTooLarge = 114,
/**
115: 在调用 sendStreamMessage 时,当发送的数据码率超过限制时 (6 Kbps),会发生该错误。
*/
ARErrorCodeBitrateLimit = 115,
/**
116: 在调用 createDataStream 时,如果创建的数据通道过多(超过 5 个通道),会发生该错误。
*/
ARErrorCodeTooManyDataStreams = 116,
/**
120: 解密失败,可能是用户加入频道用了不同的密码。请检查加入频道时的设置,或尝试重新加入频道。
*/
ARErrorCodeDecryptionFailed = 120,
/**
124: 水印文件参数错误。
*/
ARErrorCodeWatermarkParam = 124,
/**
125: 水印文件路径错误。
*/
ARErrorCodeWatermarkPath = 125,
/**
126: 水印文件格式错误。
*/
ARErrorCodeWatermarkPng = 126,
/**
127: 水印文件信息错误。
*/
ARErrorCodeWatermarkInfo = 127,
/**
128: 水印文件数据格式错误。
*/
ARErrorCodeWatermarkAGRB = 128,
/**
129: 水印文件读取错误。
*/
ARErrorCodeWatermarkRead = 129,
/**
130: 推流已加密不能推流。
*/
ARErrorCodeEncryptedStreamNotAllowedPublish = 130,
/**
134: 无效的 User Account。
*/
ARErrorCodeInvalidUserAccount = 134,
/**
151: CDN 相关错误。请调用 removePublishStreamUrl 方法删除原来的推流地址,然后调用 addPublishStreamUrl 方法重新推流到新地址。
*/
ARErrorCodePublishStreamCDNError = 151,
/**
152: 单个主播的推流地址数目达到上限 10。请删掉一些不用的推流地址再增加推流地址。
*/
ARErrorCodePublishStreamNumReachLimit = 152,
/**
153: 操作不属于主播自己的流,例如更新其他主播的流参数、停止其他主播的流。请检查 App 逻辑。
*/
ARErrorCodePublishStreamNotAuthorized = 153,
/**
154: 推流服务器出现错误。请调用 addPublishStreamUrl 重新推流。
*/
ARErrorCodePublishStreamInternalServerError = 154,
/**
155: 服务器未找到这个流。
*/
ARErrorCodePublishStreamNotFound = 155,
/**
156: 推流地址格式有错误。请检查推流地址格式是否正确。
*/
ARErrorCodePublishStreamFormatNotSuppported = 156,
/**
1001: 加载媒体引擎失败。
*/
ARErrorCodeLoadMediaEngine = 1001,
/**
1002: 启动媒体引擎开始通话失败。请尝试重新进入频道。
*/
ARErrorCodeStartCall = 1002,
/**
1003: 启动摄像头失败,请检查摄像头是否被其他应用占用,或者尝试重新进入频道。
*/
ARErrorCodeStartCamera = 1003,
/**
1004: 启动视频渲染模块失败。
*/
ARErrorCodeStartVideoRender = 1004,
/**
1005: 音频设备模块:音频设备出现错误(未明确指明为何种错误)。请检查音频设备是否被其它应用占用,或者尝试重新进入频道。
*/
ARErrorCodeAdmGeneralError = 1005,
/**
1006: 音频设备模块:使用 java 资源出现错误。
*/
ARErrorCodeAdmJavaResource = 1006,
/**
1007: 音频设备模块:设置的采样频率出现错误。
*/
ARErrorCodeAdmSampleRate = 1007,
/**
1008: 音频设备模块:初始化播放设备出现错误。请检查播放设备是否被其他应用占用,或者尝试重新进入频道。
*/
ARErrorCodeAdmInitPlayout = 1008,
/**
1009: 音频设备模块:启动播放设备出现错误。请检查播放设备是否正常,或者尝试重新进入频道。
*/
ARErrorCodeAdmStartPlayout = 1009,
/**
1010: 音频设备模块:停止播放设备出现错误。
*/
ARErrorCodeAdmStopPlayout = 1010,
/**
1011: 音频设备模块:初始化录音设备时出现错误。请检查录音设备是否正常,或者尝试重新进入频道。
*/
ARErrorCodeAdmInitRecording = 1011,
/**
1012: 音频设备模块:启动录音设备出现错误。请检查录音设备是否正常,或者尝试重新进入频道。
*/
ARErrorCodeAdmStartRecording = 1012,
/**
1013: 音频设备模块:停止录音设备出现错误。
*/
ARErrorCodeAdmStopRecording = 1013,
/**
1015: 音频设备模块:运行时播放出现错误。请检查播放设备是否正常,或者尝试重新进入频道。
*/
ARErrorCodeAdmRuntimePlayoutError = 1015,
/**
1017: 音频设备模块:运行时录音错误。请检查录音设备是否正常,或者尝试重新进入频道。
*/
ARErrorCodeAdmRuntimeRecordingError = 1017,
/**
1018: 音频设备模块:录音失败。
*/
ARErrorCodeAdmRecordAudioFailed = 1018,
/**
1020: 音频设备模块:回放频率异常。
*/
ARErrorCodeAdmPlayAbnormalFrequency = 1020,
/**
1021: 音频设备模块:录制频率异常。
*/
ARErrorCodeAdmRecordAbnormalFrequency = 1021,
/**
1022: 音频设备模块:初始化 Loopback 设备错误。
*/
ARErrorCodeAdmInitLoopback = 1022,
/**
1023: 音频设备模块:启动 Loopback 设备错误。
*/
ARErrorCodeAdmStartLoopback = 1023,
/**
1027: 音频设备模块: 在没有录音权限时发生错误。
*/
ARErrorCodeAdmNoPermission = 1027,
/**
1359: 音频设备模块:无录制设备。请检查是否有可用的录放音设备或者录放音设备是否已经被其他应用占用。
*/
ARErrorCodeAdmNoRecordingDevice = 1359,
/**
1360: 音频设备模块:无播放设备。
*/
ARErrorCodeAdmNoPlayoutDevice = 1360,
/**
1501: 视频设备模块:没有摄像头使用权限。请检查是否已经打开摄像头权限。
*/
ARErrorCodeVdmCameraNotAuthorized = 1501,
/**
1600: 视频设备模块:未知错误。
*/
ARErrorCodeVcmUnknownError = 1600,
/**
1601: 视频设备模块:视频编码器初始化错误。该错误为严重错误,请尝试重新加入频道。
*/
ARErrorCodeVcmEncoderInitError = 1601,
/**
1602: 视频设备模块:视频编码器错误。该错误为严重错误,请尝试重新加入频道。
*/
ARErrorCodeVcmEncoderEncodeError = 1602
};