SRTCError,一个带语义的 Swift 枚举,同时提供跨端统一的整数错误码:
- 用
switch按 case 分支处理 - 用
error.code拿到完整错误码,error.baseCode拿到低 3 位语义码 - 用
error.message拿到英文描述;error.localizedDescription输出"<code>: <message>"
自 1.5.0 起错误码按跨端统一码表重排、报错文案改为英文。1.4.7 及以前的旧码与新码的对照见 更新日志。
错误码规则
SRTCError.code 返回的是完整错误码:
- SDK 自身的错误:平台前缀 + 3 位低位码。iOS 前缀
103,macOS 前缀105,如 iOS 无摄像头权限为103231 - 后端业务错误(码 1000–99999):原样透传,不加前缀
- HTTP 状态码不会拼进错误码:HTTP 非 200、网络失败一律为
006,HTTP 状态只在apiRequestFailed的statusCode与描述里
baseCode 是低 3 位语义码,与 Web / Android / 鸿蒙等端同义,适合做跨端统一的提示映射;后端业务码的 baseCode 返回自身。
SRTCError 实现了 CustomNSError:桥接成 NSError 后 domain = "cn.seastart.srtc"、code 为完整码,有系统原始错误时(如 screenShareDenied)放在 NSUnderlyingErrorKey。ObjC / uni-app / Flutter 等走 NSError 的集成方可直接按码判断。
报错语言
message/localizedDescription一律英文,给开发者和日志看;给终端用户的提示请按code/baseCode自行映射,不要直接展示messageSRTCEngine.language(如"en"、"zh-CN",nil跟随系统语言)决定请求后端时的Accept-Language头,后端业务错误(码 1000–99999)的文案随之返回中文或英文;SDK 自身报错不受它影响
连接相关
信令相关
WebRTC / 传输相关
轨道与采集相关
引擎与通用错误
虚拟背景相关
用法见 虚拟背景。
推荐的错误处理方式
SRTCError 以库演进模式分发,后续版本可能新增 case,switch 里请保留 default 分支。