# EZOpenSDK iOS 错误码与常见问题

适用于 Android、iOS、Harmony、Mac 四端 SDK。萤石开放平台 SDK 错误码都是 6 位数，对各个二方库的错误码做了【偏移量处理】。负数错误码都为网络问题（手机或者平台服务），请检查手机网络或者检查请求地址是否正确。

## 一、iOS 平台常见问题 FAQ

### 预览问题

**Q：设备预览失败**
1. 查阅错误码表
2. 确认是否是网络问题，切换至外网试试
3. 如果 Demo 正常但自己 App 不正常，检查 setPlayVerifyCode 传入的是否是明文字符串
4. 确认 EZPlayer 是否定义为属性（定义成局部变量会导致无法播放）

**Q：预览花屏、绿屏、卡顿**
A：设备端网络不稳定或设备问题，使用萤石云视频 App 对比验证。

**Q：openssl 崩溃**
A：最新版 SDK 内置 openssl 3.0.17，与其他三方库的 openssl 版本冲突会导致崩溃。建议使用动态库版本的 SDK。

**Q：模拟器编译报错**
A：SDK 仅支持真机，不支持模拟器调试。

### 对讲问题

**Q：第一次对讲异常/无声音**
A：务必在发起对讲前向 iOS 系统申请麦克风权限（`AVAudioSession requestRecordPermission`），否则第一次对讲异常。

**Q：对讲有回音**
A：非国标设备对讲成功后需关闭预览播放器声音 `[_player closeSound]`，对讲结束后恢复。

**Q：iOS 对讲声音比 Android 大**
A：iOS 开了 AGC 音效增强，属正常现象。

### 配网问题

**Q：AP 配网连接设备热点弹框确认**
A：iOS 系统使用 `NEHotspotConfigurationManager` 连接 WiFi 会弹框确认，这是正常现象。

**Q：AP 配网 applyConfiguration 返回 nil 但实际未连接**
A：系统 API 有 bug，error 为 nil 不代表连接成功。需额外判断当前 WiFi 名是否为设备热点名。

### 问题反馈须知

排查步骤：
1. 查阅错误码表
2. 查看本文常见问题
3. 使用官网最新 Demo 复现
4. 若 Demo 可复现，创建工单并提供：SDK 平台类型、问题频率、详细描述、Demo 完整日志

## 二、iOS SDK 常用错误码常量

```objc
EZ_SDK_NEED_VALIDATECODE = 400035    // 需要设备验证码
EZ_SDK_VALIDATECODE_NOT_MATCH = 400036  // 设备验证码不匹配
EZ_SDK_NOT_SUPPORT_TALK = 400025     // 设备不支持对讲

EZ_HTTPS_DEVICE_ADDED_MYSELF = 120020    // 设备在线，已被自己添加
EZ_HTTPS_DEVICE_ONLINE_ADDED = 120022    // 设备在线，已被别人添加
EZ_HTTPS_DEVICE_OFFLINE_NOT_ADDED = 120023  // 设备不在线，未被添加
EZ_HTTPS_DEVICE_OFFLINE_IS_ADDED = 120024   // 设备不在线，已被别人添加
EZ_HTTPS_DEVICE_OFFLINE_IS_ADDED_MYSELF = 120029  // 设备不在线，已被自己添加
EZ_HTTPS_DEVICE_NOT_EXISTS = 120002  // 设备不存在
EZ_HTTPS_DEVICE_ONLINE_IS_ADDED = 120021  // 设备在线，未被添加（不需要配网）
```

## 三、错误码偏移值对照表

如果未找到对应的错误码，请参考以下表格跳转该二方库原始错误码文档。

| 错误码偏移值 | 含义 | 备注 |
|:---|:---|:---|
| 100000 | http请求错误码 | 错误码减去100000 |
| 320000 | 通用库自定义错误码 | 错误码减去320000 |
| 321000 | 研究院播放库错误码 | 错误码减去321000 |
| 332000 | hcnp错误码 | |
| 340000 | RTSP错误码 | 错误码减去340000 |
| 360000 | tts对讲协议错误码 | 错误码减去360000 |
| 361000 | 新tts对讲协议错误码 | |
| 380000 | 直连、P2P取流错误码 | 错误码减去380000 |
| 390000 | 流媒体转发取流错误码 | 错误码减去390000 |
| 400000 | EZOpenSDK自定义错误码 | |

## 四、错误码表

### 用户账号相关（101xxx）
| 错误码 | 释义 | 解决方案 |
|--------|------|----------|
| 101001 | 用户名不合法 | |
| 101002 | 用户名已被占用 | |
| 101003 | 密码不合法 | |
| 101004 | 密码为同一字符 | |
| 101006 | 手机号码已经被注册 | |
| 101007 | 手机号未注册 | |
| 101008 | 手机号码不合法 | |
| 101009 | 用户名与手机不匹配 | |
| 101010 | 获取验证码失败 | |
| 101011 | 验证码错误 | |
| 101012 | 验证码失效 | |
| 101013 | 用户不存在 | |
| 101014 | 密码不正确或 appKey 不正确 | |
| 101015 | 用户被锁住 | |
| 101021 | 验证参数异常 | |
| 101026 | 邮箱已经被注册 | |
| 101031 | 邮箱未注册 | |
| 101032 | 邮箱不合法 | |
| 101041 | 获取验证码过于频繁 | |
| 101043 | 手机验证码输入错误超过规定次数 | |

### 设备相关（102xxx/105xxx/106xxx/107xxx）
| 错误码 | 释义 | 解决方案 |
|--------|------|----------|
| 102000 | 设备不存在 | |
| 102001 | 摄像机不存在 | 摄像机未注册到萤石云平台，检查网络配置 |
| 102003 | 设备不在线 | |
| 102004 | 设备异常 | |
| 102007 | 设备序列号不正确 | |
| 102009 | 设备请求响应超时异常 | |
| 105000 | 设备已被自己添加 | |
| 105001 | 设备已被别人添加 | |
| 105002 | 设备验证码错误 | |
| 106002 | 请在萤石客户端关闭终端绑定 | 操作步骤：打开萤石云视频-底部菜单我的-右上角设置-账号安全设置-终端绑定关闭 |
| 107001 | 邀请不存在 | |
| 107002 | 邀请验证失败 | |
| 107003 | 邀请用户不匹配 | |
| 107004 | 无法取消邀请 | |
| 107005 | 无法删除邀请 | |
| 107006 | 不能邀请自己 | |
| 107007 | 重复邀请 | |

### 平台接口相关（110xxx）
| 错误码 | 释义 | 解决方案 |
|--------|------|----------|
| 110001 | 参数错误 | |
| 110002 | accessToken 异常或过期 | accessToken 有效期七天，过期或出现 10002 时重新获取 |
| 110004 | 用户不存在 | |
| 110005 | appKey 异常 | |
| 110006 | ip受限 | |
| 110007 | 调用次数达上限 | 请升级企业版 |
| 110008 | 签名错误 | |
| 110009 | 签名参数错误 | |
| 110010 | 签名超时 | |
| 110011 | 未开通萤石云服务 | |
| 110012 | 第三方账户与萤石账号已经绑定 | |
| 110013 | 应用没有权限调用此接口 | |
| 110014 | 第三方 userId 和 phone 未绑定 | 获取 accessToken 的 appKey 与 SDK 的 appKey 不一致 |
| 110017 | appKey 不存在 | 请填写官网申请的应用秘钥 |
| 110018 | AccessToken 与 Appkey 不匹配 | 检查 appKey 是否一致 |
| 110019 | 密码错误 | |
| 110020 | 请求方法为空 | |
| 110021 | ticket校验失败 | |
| 110022 | 透传目的地非法 | |
| 110023 | appKey与bundleId不匹配 | |
| 110024 | 无透传权限 | |
| 110025 | appKey被禁止使用通明通道 | |
| 110026 | 设备数量超出个人版限制 | 请升级企业版 |
| 110027 | appKey数量超出安全限制 | 升级企业版可取消限制 |
| 110028 | 个人版账户抓图接口日调用次数超出限制 | 请升级企业版 |
| 110029 | 调用频率超过个人版账户频率限制20次/分钟 | 请升级企业版 |
| 110030 | appKey和appSecret不匹配 | 请检查appKey和appSecret是否对应 |
| 110031 | 子账户或萤石用户没有权限 | 该设备未添加至指定套餐的APP中，找技术支持开通 |
| 110032 | 子账户不存在 | |
| 110033 | 子账户未设置授权策略 | |
| 110034 | 子账户已存在 | |
| 110035 | 获取子账户AccessToken异常 | 子账户不存在或不属于该开发者 |
| 110036 | 子账户被禁用 | |
| 110051 | 无权限进行抓图 | |

### 设备操作相关（120xxx）
| 错误码 | 释义 | 解决方案 |
|--------|------|----------|
| 120001 | 通道不存在 | |
| 120002 | 设备不存在 | |
| 120003 | 参数异常，SDK版本过低 | |
| 120004 | 参数异常，SDK版本过低 | |
| 120005 | 安全认证失败 | |
| 120006 | 网络异常 | |
| 120007 | 设备不在线 | |
| 120008 | 设备响应超时 | 检测设备网络或重试 |
| 120009 | 子账号不能添加设备 | |
| 120010 | 设备验证码错误 | 验证码在设备标签上，六位大写字母 |
| 120012 | 设备添加失败 | |
| 120013 | 设备已被别人添加 | |
| 120014 | 设备序列号不正确 | |
| 120015 | 设备不支持该功能 | |
| 120016 | 当前设备正在格式化 | |
| 120017 | 设备已被自己添加 | |
| 120018 | 该用户不拥有该设备 | 确认设备是否属于用户 |
| 120019 | 设备不支持云存储服务 | |
| 120020 | 设备在线，被自己添加 | |
| 120021 | 设备在线，但是未被用户添加 | |
| 120022 | 设备在线，已被别人添加 | |
| 120023 | 设备不在线，未被添加 | |
| 120024 | 设备不在线，已被别的用户添加 | |
| 120025 | 重复申请分享 | |
| 120026 | 视频广场不存在该视频 | |
| 120027 | 视频转码失败 | |
| 120028 | 设备固件升级包不存在 | |
| 120029 | 设备不在线，已被自己添加 | |
| 120030 | 该用户不拥有该视频广场视频 | |
| 120031 | 开启终端绑定 | 请在萤石客户端关闭终端绑定 |
| 120032 | 该用户下通道不存在 | |
| 120033 | 无法收藏自己分享的视频 | |
| 120034 | 该用户下无设备 | |
| 120035 | 该通道被隐藏 | 开放平台不支持隐藏通道取流 |
| 120090 | 用户反馈失败 | |
| 120101 | 视频不支持分享给本人 | |
| 120102 | 无相应邀请信息 | |
| 120103 | 好友已存在 | |
| 120104 | 好友不存在 | |
| 120105 | 好友状态错误 | |
| 120106 | 对应群组不存在 | |
| 120107 | 不能添加自己为好友 | |
| 120108 | 当前用户和所添加用户不是好友关系 | |
| 120109 | 对应分享不存在 | |
| 120201 | 操作报警信息失败 | |
| 120202 | 操作留言信息失败 | |
| 120301 | 根据UUID查询报警消息不存在 | |
| 120401 | 用户云空间信息不存在 | |
| 120402 | 云空间操作失败 | |
| 120406 | 已开通云存储 | |
| 120500 | 获取数据错误 | |
| 120501 | 开锁失败 | |
| 120502 | 室内机未收到呼叫 | |
| 120503 | 正在响铃 | |
| 120504 | 室内机正在通话 | |
| 120505 | 设备操作失败 | |
| 120506 | 非法命令 | |
| 120507 | 智能锁密码错误 | |
| 120508 | 开关锁失败 | |
| 120509 | 开关锁超时 | |
| 120510 | 智能锁设备繁忙 | |
| 120511 | 远程开锁功能未打开 | |
| 120600 | 临时密码数已达上限 | |
| 120601 | 添加临时密码失败 | |
| 120602 | 删除临时密码失败 | |
| 120603 | 该临时密码不存在 | |
| 120604 | 指纹锁射频通信失败 | 请稍后再试 |
| 120605 | 其他用户正在认证中 | |
| 120606 | 验证已启动 | 请在120s内进行本地验证和调用添加设备接口 |
| 120607 | 删除用户失败 | |
| 120608 | 用户不存在 | |
| 120609 | 设备响应超时 | 门锁通信故障或者电量不足 |
| 120610 | 获取临时密码列表失败 | |

### 其他平台相关（130xxx/149xxx/150xxx/170xxx）
| 错误码 | 释义 | 解决方案 |
|--------|------|----------|
| 130001 | 用户不存在 | |
| 130002 | 手机号码已经注册 | |
| 130003 | 手机验证码错误 | |
| 130004 | 终端绑定操作失败 | |
| 149999 | 数据异常 | |
| 150000 | 服务器异常 | |
| 170003 | refreshToken不存在 | |
| 170004 | refreshToken已过期 | |

### 云台相关（160xxx）
| 错误码 | 释义 | 解决方案 |
|--------|------|----------|
| 160000 | 设备不支持云台控制 | |
| 160001 | 用户无云台控制权限 | |
| 160002 | 云台旋转达到上限位 | |
| 160003 | 云台旋转达到下限位 | |
| 160004 | 云台旋转达到左限位 | |
| 160005 | 云台旋转达到右限位 | |
| 160006 | 云台当前操作失败 | |
| 160007 | 预置点个数超过最大值 | |
| 160009 | 正在调用预置点 | |
| 160010 | 该预置点已经是当前位置 | |
| 160011 | 预置点不存在 | |
| 160013 | 设备版本已是最新 | |
| 160014 | 设备正在升级 | |
| 160015 | 设备正在重启 | |
| 160016 | 加密未开启，无须关闭 | |
| 160017 | 设备抓图失败 | |
| 160018 | 设备升级失败 | |
| 160019 | 加密已开启 | |
| 160020 | 不支持该命令 | 确认设备是否支持 |
| 160023 | 订阅操作失败 | |
| 160024 | 取消订阅操作失败 | |
| 160025 | 客流统计配置失败 | |
| 160026 | 设备处于隐私遮蔽状态 | |
| 160027 | 设备正在镜像操作 | |
| 160028 | 设备正在键控动作 | |
| 160029 | 设备处于语音对讲状态 | |
| 160030 | 卡密输入错误次数过多 | 24小时后再输入 |
| 160031 | 卡密信息不存在 | |
| 160032 | 卡密状态不对或已过期 | |
| 160033 | 卡密非卖品 | 只能开通对应的绑定设备 |
| 160035 | 购买云存储服务失败 | |
| 160040 | 添加的设备不在同一局域网 | |
| 160041 | 添加的设备被其他设备关联或响应超时 | |
| 160042 | 添加的设备密码错误 | |
| 160043 | 添加的设备超出最大数量 | |
| 160044 | 添加的设备网络不可达超时 | |
| 160045 | 添加的设备的IP和其他通道的IP冲突 | |
| 160046 | 添加的设备的IP和本设备的IP冲突 | |
| 160047 | 码流类型不支持 | |
| 160048 | 带宽超出系统接入带宽 | |
| 160049 | IP或者端口不合法 | |
| 160050 | 添加的设备版本不支持需要升级才能接入 | |
| 160051 | 添加的设备不支持接入 | |
| 160052 | 添加的设备通道号出错 | |
| 160053 | 添加的设备分辨率不支持 | |
| 160054 | 添加的设备账号被锁定 | |
| 160055 | 添加的设备取码流出错 | |
| 160056 | 删除设备失败 | |
| 160057 | 删除的设备未关联 | 检查IPC与NVR是否有关联关系 |
| 160060 | 地址未绑定 | 请前往官网设置直播 |
| 160061 | 账户流量已超出或未购买，限制开通 | |
| 160062 | 该通道直播已开通 | |
| 160063 | 直播未使用或直播已关闭 | |
| 160070 | 设备不能转移给自己 | |
| 160071 | 设备不能转移，与其他设备存在关联关系 | |
| 160072 | 设备不能转移，通道被分享给其他用户 | |
| 160073 | 云存储转移失败 | |
| 160080 | 当前正在声源定位 | |
| 160081 | 当前正在轨迹巡航 | |
| 160082 | 设备正在响应本次声源定位 | |
| 160083 | 当前正在开启隐私遮蔽 | 设备正在操作隐私遮蔽，无法进行当前操作 |
| 160084 | 当前正在关闭隐私遮蔽 | 设备正在操作隐私遮蔽，无法进行当前操作 |
| 160087 | 设备未开通对讲变声 | 联系技术支持开通 |

### 服务器相关（250xxx）
| 错误码 | 释义 | 解决方案 |
|--------|------|----------|
| 250000 | 服务器异常 | iOS：后端服务某些接口用户无权限会直接返回40x错误，SDK对此类错误做了一层封装，具体错误看调试栏日志 |

### SDK 内部错误（320xxx）
| 错误码 | 释义 | 解决方案 |
|--------|------|----------|
| 320001 | 未知错误 | |
| 320002 | 参数无效 | |
| 320003 | 暂不支持此操作 | |
| 320004 | 内存溢出 | |
| 320005 | 创建CAS session失败 | |
| 320006 | 创建cloud session失败 | |
| 320007 | token失效 | 小权限模式：IPC 对讲用 0 通道，对讲streamToken生成请使用0通道；双目设备取流使用交织流0通道 |
| 320008 | token池里面没有token | 请传入token |
| 320009 | 传入新的INIT_PARAM并reset | |
| 320010 | 请重试 | |
| 320011 | 500毫秒后请重试 | |
| 320012 | token池已满 | |
| 320013 | P2P client超过限制 | |
| 320014 | SDK 未初始化 | |
| 320015 | 超时 | |
| 320016 | 正在打洞中 | |
| 320017 | 没有视频文件头 | |
| 320018 | 解码错误/超时 | |
| 320019 | 取消 | |
| 320020 | 播放过程中预连接被用户清除预操作信息 | 对用户提示网络不佳请重试，或应用层自行重试取流 |
| 320021 | 流加密码不对 | |
| 320022 | 未传入播放窗口 | |
| 320023 | 流头超时 | 设备不推流：1.设备网络问题 2.通道推不出流 3.用萤石 App 验证 |
| 320024 | 流数据超时 | 设备端网络问题，推流不稳定 |
| 320025 | 解码超时 | 设备端网络问题 |
| 320026 | 内部播放库port错误 | |
| 320027 | 获取未加密视频走蚁兵时，获取软加密秘钥错误 | |
| 320028 | 未找到 | |

### 研究院播放库错误码（321xxx）
| 错误码 | 释义 | 解决方案 |
|--------|------|----------|
| 321001 | 播放库入参不对 | 检查 setPlayVerifyCode 传入的是否是明文字符串 |
| 321022 | 播放窗口未解绑 | iOS：确认 EZPlayer 的 playerView 是否正确设置 |
| 322008 | 窗口已被占用 | playerView 只能被一个 EZPlayer 绑定 |

### RTSP取流相关（340xxx）
| 错误码 | 释义 | 解决方案 |
|--------|------|----------|
| 340402 | 回放找不到录像文件 | |
| 340403 | 操作码或信令密钥与设备不匹配 | |
| 340404 | 设备不在线 | |
| 340405 | 流媒体向设备发送或接受信令超时 | |
| 340406 | token失效 | |
| 340407 | 客户端的URL格式错误 | |
| 340409 | 预览开启隐私保护 | |
| 340410 | 设备达到最大连接数 | |
| 340411 | token无权限 | |
| 340412 | session不存在 | |
| 340415 | 设备通道错 | |
| 340451 | 设备不支持的码流类型 | |
| 340452 | 设备链接流媒体服务器失败 | |
| 340491 | 相同取流请求正在处理，拒绝本次处理 | |
| 340500 | 服务器内部处理失败 | |
| 340503 | vtm返回分配vtdu失败 | |
| 340504 | 流媒体vtdu达到最大负载 | 请扩容 |
| 340544 | 设备返回无视频源 | |
| 340545 | 视频分享时间已经结束 | |
| 340546 | 达到取流并发路数限制 | |
| 340547 | 开放平台用户并发限制 | |

### 对讲相关（360xxx/361xxx/362xxx）
| 错误码 | 释义 | 解决方案 |
|--------|------|----------|
| 360001 | 排队超时 | |
| 360002 | 处理超时 | |
| 360003 | 设备链接服务失败 | 设备网络问题，切换网络尝试 |
| 360004 | TTS内部发生错误 | |
| 360005 | 客户端发送的消息错误 | |
| 360006 | 需要重定向 | |
| 360007 | 请求的URL格式错误 | |
| 360008 | 认证 token 失败 | 小权限模式：IPC 对讲用 0 通道，NVR 用对应通道 |
| 360009 | 验证码或者秘钥不匹配 | |
| 360010 | 设备正在对讲中 | |
| 360011 | 设备响应超时 | |
| 360012 | 设备不在线 | |
| 360013 | 设备开启隐私保护 | |
| 360014 | token校验无权限 | |
| 360015 | session不存在 | |
| 360016 | 验证token失败 | |
| 360017 | 设备监听超时 | |
| 360018 | 设备链路断开 | |
| 360019 | 隐私遮蔽 | |
| 360020 | 声源定位 | |
| 360021 | TTS服务ticket认证失败 | |
| 360027 | TTS RPC请求超时 | |
| 360028 | 设备资源受限，无法对讲 | |
| 360100 | 客户端函数传参错误 | |
| 360101 | 客户端创建socket出错 | |
| 360102 | 客户端接收信令socket异常 | |
| 360103 | 客户端发送信令socket异常 | |
| 360104 | 客户端获知TTS关闭了链接 | |
| 360105 | TTS返回的信令类型错误 | |
| 360106 | TTS响应中的result为负值 | |
| 360107 | 客户端请求等待TTS超时 | |
| 360108 | 客户端连接对讲服务失败 | 客户端网络问题 |
| 360109 | 客户端检验服务端消息类型错误 | |
| 360110 | 客户端对讲中发送消息错误 | |
| 360111 | 客户端对讲中接收错误 | 客户端网络异常，切换到外网 |
| 360112 | 客户端创建线程失败 | |
| 360113 | 客户端处理URL失败 | |
| 360114 | 客户端获取的重定向URL错误 | |
| 361001 | 对讲服务端排队超时 | |
| 361002 | 对讲服务端处理超时 | |
| 361003 | 设备链接对讲服务器超时 | 1.检查隐私遮蔽 2.设备网络异常，切换网络 |
| 361004 | 服务器内部错误 | |
| 361005 | 解析消息失败 | |
| 361006 | 请求重定向 | |
| 361007 | 请求url非法 | |
| 361008 | token失效 | |
| 361009 | 设备验证码或者通信秘钥不匹配 | |
| 361010 | 设备已经在对讲 | |
| 361011 | 设备10s响应超时 | |
| 361012 | 设备不在线 | |
| 361013 | 设备开启隐私保护拒绝对讲 | |
| 361014 | token无权限 | |
| 361015 | 设备返回session不存在 | |
| 361017 | 服务端监听设备建立端口超时 | |
| 361018 | 设备链路异常 | |
| 361019 | 设备处于隐私遮蔽状态 | |
| 361020 | 设备当前正在声源定位 | |
| 362003 | 设备对讲过程中推流链路异常断开 | |

### P2P/直连相关（380xxx）
| 错误码 | 释义 | 解决方案 |
|--------|------|----------|
| 380001 | 未知错误 | |
| 380002 | 报文参数错误 | |
| 380003 | 报文解析错误 | |
| 380004 | 系统内部错误 | 通道错误/不在线/码流不支持 |
| 380006 | 非法命令 | |
| 380011 | 校验码错误 | |
| 380034 | 设备加密算法不匹配 | |
| 380042 | 操作码错误 | |
| 380044 | 拒绝 | |
| 380045 | 没有可用资源，设备连接上线 | |
| 380046 | 通道错 | |
| 380047 | 不支持的命令 | |
| 380048 | 没有权限 | |
| 380051 | 该通道已在发流 | |
| 380052 | 取流地址重复 | |
| 380053 | 不支持的码流类型 | |
| 380054 | 不支持的传输方式 | |
| 380055 | 连接预览流媒体服务器失败 | |
| 380060 | P2P取流通道不存在 | |
| 380061 | 查找录像开始时间错 | |
| 380062 | 查找录像结束时间错 | |
| 380063 | 查找录像失败 | |
| 380066 | 不支持的回放类型 | |
| 380067 | 没有找到文件 | |
| 380070 | 该时间段内没有录像 | |
| 380076 | 不支持的语音编码类型 | |
| 380077 | 该通道已在对讲 | |
| 380079 | 不支持对讲 | |
| 380080 | 通道号错误 | |
| 380082 | 设备拒绝 | |
| 380083 | 设备资源受限 | |
| 380086 | 没有本地存储 | |
| 380087 | 正在格式化中 | |
| 380121 | 请求的设备不在线 | |
| 380122 | 为了保护设备，拒绝请求 | |
| 380123 | 设备达到最大连接数 | |
| 380124 | 要求客户端断开与设备连接 | |
| 380125 | 设备拒绝平台发送的客户端连接请求 | |
| 380127 | 设备开启隐私保护 | |
| 380186 | 设备本地抓图失败 | |
| 380201 | 参数错误 | |
| 380202 | 分配资源失败 | |
| 380203 | 发送错误 | |
| 380204 | 接收错误 | |
| 380207 | 初始化Socket失败 | |
| 380208 | 创建socket失败 | |
| 380209 | 连接服务器或设备失败 | 网络不通、IP或端口错误 |
| 380212 | 信令发送超时 | |
| 380213 | 信令接收超时 | P2P取流时客户端10秒内未收到响应 |
| 380216 | 用户中途强行退出 | |
| 380224 | P2P 打洞失败 | |
| 380226 | 用户强制中止取流过程 | |
| 380227 | 缓冲区满 | |
| 380228 | 初始化ssl失败 | |
| 380229 | SSL 连接失败 | 网络不佳 |
| 380260 | 添加的摄像机和设备不在同一局域网 | |
| 380261 | 添加的摄像机被其他设备关联或超时 | |
| 380262 | 添加摄像机的密码错误 | |
| 380263 | 删除摄像机失败 | |
| 380264 | 设备添加的摄像机已满 | |
| 380290 | P2P 预链接路数达上限 | |
| 380291 | 直连取流路数达上限 | |
| 380293 | 设备未绑定用户 | 检测设备是否已经加入平台 |
| 380294 | 访问凭证过期 | |
| 380295 | 访问凭证无效 | |
| 380296 | 无可用P2P服务 | 上层需要重新获取P2P Server信息 |
| 380297 | P2P Server未找到设备 | |
| 380306 | 会话已释放 | |
| 380340 | 等待打洞成功超时 | |
| 380342 | P2P 取流未收到设备流 | |
| 380343 | P2P 取流过程中断流 | |
| 380351 | 客户端与设备之间的预链接已断开 | |
| 380355 | socket 错误 | 取流链路异常，检查 App 和设备网络 |
| 380356 | socket接收错误，设备主动close | |
| 380357 | socket发送错误 | |
| 380364 | P2P链路的秘钥版本不一致 | |
| 380367 | 用户无权限访问设备 | |
| 380368 | Token无效或者过期 | |
| 380380 | 设备解密信令失败 | |
| 380381 | devp2p返回没有可用资源 | |
| 380391 | 设备已经在预取流，不再支持预取流 | |
| 380392 | 设备触发另一路取流，断开前一路的预取流 | |
| 380393 | P2P取流通道不存在 | |
| 380397 | 通道未关联 | |
| 380398 | 通道关联设备不在线 | |
| 380422 | ticket失效 | |
| 380423 | 暂停超时 | |
| 380425 | 云存储元数据不存在 | 客户端请求时间不能跨天 |

### 流媒体转发取流相关（390xxx/391xxx）
| 错误码 | 释义 | 解决方案 |
|--------|------|----------|
| 390001 | 通用错误返回 | |
| 390002 | 入参为空指针 | |
| 390003 | 入参值无效 | |
| 390004 | 信令消息解析非法 | |
| 390005 | 内存资源不足 | |
| 390006 | 协议格式不对或消息体长度超过 | |
| 390014 | 回调函数未注册 | |
| 390023 | 获取系统socket资源失败 | |
| 390025 | 链接服务器失败 | |
| 390026 | 客户端请求未收到服务端应答 | |
| 390027 | 链路断开 | |
| 390029 | 流成功停止 | |
| 390030 | 客户端防串流校验失败 | |
| 390034 | 向 VTM 请求超时 | 检查 App 网络，使用公网 |
| 390035 | 向代理取流请求超时 | |
| 390036 | 向代理保活取流请求超时 | |
| 390037 | 向 VTDU 取流请求超时 | 设备端网络问题 |
| 390038 | 向 VTDU 保活请求超时 | 网络不佳（如国内测试海外设备） |
| 391001 | vtm地址或端口非法 | |
| 391009 | vtm描述符select超时 | App tcp三次握手建链未成功，流媒体机房配置错误或手机端网络问题 |
| 391101 | proxy地址或端口非法 | |
| 391109 | proxy描述符select超时 | |
| 391201 | vtdu地址或端口非法 | |
| 391209 | vtdu描述符select超时 | 当前网络不稳定，请稍候再试 |

### 流媒体服务端错误（395xxx）
| 错误码 | 释义 | 解决方案 |
|--------|------|----------|
| 395000 | cas回复信令，发现内存已经释放 | 检查设备网络；刷新重试 |
| 395400 | 取流参数不正确 | 如设备序列号、码流类型等 |
| 395402 | 回放找不到录像文件 | 检查存储卡是否接触良好 |
| 395403 | 操作码或信令密钥与设备不匹配 | |
| 395404 | 设备不在线 | 检查设备网络，重启设备 |
| 395405 | 流媒体信令超时 | 设备网络异常或信令处理卡住 |
| 395406 | token失效 | 刷新重试或者重启设备 |
| 395407 | 客户端的URL格式错误 | 刷新重试 |
| 395409 | 预览开启隐私保护 | |
| 395410 | 设备达到最大连接数 | |
| 395411 | token 无权限 | 1.NVR隐藏通道不支持 2.权限被取消需重新登录 3.账号切换需先退出 4.确保进入预览前已setAccessToken 5.取流token过期需重新setAccessToken |
| 395412 | session不存在 | 刷新重试 |
| 395413 | 验证token其他异常 | |
| 395415 | 设备通道错误 | 刷新重试 |
| 395416 | 设备达到最大连接数 | 重启设备试试 |
| 395451 | 不支持的码流类型 | 刷新重试或切换高清模式 |
| 395452 | 设备链接流媒体失败 | 设备网络异常或防火墙限制 |
| 395454 | 流媒体中关于设备取流会话不存在 | |
| 395455 | 设备通道未关联 | |
| 395456 | 设备通道关联设备不在线 | |
| 395457 | 客户端不支持端到端加密 | |
| 395492 | 设备不支持的命令 | |
| 395500 | 流媒体服务器内部处理错误 | 刷新重试 |
| 395501 | 流媒体vtdu达到最大负载 | 请稍后重试 |
| 395503 | vtm返回分配vtdu失败 | 服务器负载达到上限，请稍后重试 |
| 395507 | vtm返回4G套餐限制非萤石App取流 | 不支持该4G卡套餐在非萤石App取流 |
| 395530 | 机房故障不可用 | 刷新重试 |
| 395544 | 设备返回无视频源 | 检查设备是否接触良好 |
| 395545 | 视频分享时间已经结束 | |
| 395546 | 达到取流并发限制 | 请升级企业版 |
| 395547 | 开放平台用户并发限制 | |
| 395557 | 回放服务器等待流头超时 | 刷新重试，检测设备网络，重启设备 |
| 395558 | 查找录像开始时间错误 | 保证传入的录像起始时间内有录像文件（推荐按录像文件方式回放） |
| 395600 | 分享设备不在分享时间内 | |
| 395610 | 接收流头失败 | |
| 395620 | 心跳超时 | |
| 395701 | cas信令返回格式错误 | 刷新重试 |
| 395702 | SPGW请求Cas、Status透传超时 | |

### 客户端/设备信令错误（396xxx）
| 错误码 | 释义 | 解决方案 |
|--------|------|----------|
| 396001 | 客户端参数出错 | 刷新重试 |
| 396099 | 客户端默认错误 | |
| 396101 | 不支持的命令 | 刷新重试 |
| 396102 | 设备流头发送失败 | 刷新重试 |
| 396103 | cas/设备返回错误1 | 刷新重试 |
| 396104 | cas/设备返回错误-1 | 刷新重试 |
| 396105 | 设备返回错误码3 | 刷新重试 |
| 396106 | 设备返回错误码4 | 1.请求通道不存在 2.请求通道不在线 3.请求码流类型不支持，切换清晰度重试 |
| 396107 | 设备返回错误码5 | 刷新重试 |
| 396108 | cas信令回应重复 | 刷新重试 |
| 396109 | 视频广场取消分享 | |
| 396110 | 设备信令默认错误 | |
| 396501 | 设备数据链路和实际链路不匹配 | 刷新重试 |
| 396502 | 设备数据链路重复建立连接 | 设备有超过两条不同线路同时来连服务导致 |
| 396503 | 设备数据链路端口不匹配 | 刷新重试 |
| 396506 | 设备数据先于确定头部到达 | 刷新重试 |
| 396507 | 设备数据头部长度非法 | |
| 396508 | 设备数据头部长度非法 | 刷新重试或者重启设备 |
| 396518 | 设备数据包过大 | 刷新重试或者重启设备 |
| 396519 | 设备推流链路网络不稳定 | |
| 396520 | 设备推流链路网络不稳定，设备网络异常断开 | 设备网络有限制，需要换个网络 |

### 客户端错误（400xxx）
| 错误码 | 释义 | 解决方案 |
|--------|------|----------|
| 400001 | 参数为空 | |
| 400002 | 参数错误 | 1.检查 API 入参 2.运行 Demo 对比入参 |
| 400025 | 设备不支持对讲 | 确认 IPC 全双工/半双工或 NVR 通道对讲能力 |
| 400029 | 未初始化或资源被释放 | iOS：确认 EZPlayer 是否定义为属性而非局部变量 |
| 400030 | json解析异常 | |
| 400031 | 网络异常 | |
| 400032 | 设备信息异常为空 | |
| 400034 | 取流超时 | 1.设备清晰度能力数据不正确 2.设备网络差 3.设备异常 |
| 400035 | 设备已加密，需输入验证码 | |
| 400036 | 播放验证码错误 | |
| 400037 | 播放视图错误 | iOS：检查 EZPlayer 的 playerView 是否正确设置 |
| 400100 | 未知错误 | |
| 400200 | player sdk出错 | |
| 400300 | 内存溢出 | |
| 400901 | 设备不在线 | |
| 400902 | accessToken 异常或失效 | |
| 400903 | 当前账号开启了终端绑定 | 登录 i.ys7.com 解除终端绑定 |
| 400904 | 设备正在对讲中 | |
| 400905 | 设备开启隐私保护 | |
| 400906 | 发起取流成功，但长时间不来流 | |
| 400907 | 取流无权限 | 设备拥有者/托管者/分享者权限都没有 |
| 400908 | 设备不支持p2p通道控制云台 | |
| 400909 | 带宽检测正在进行中 | 先停止上一次带宽检测或等待完成后再发起 |
| 510000 | NVR 设备不支持通道对讲 | |
