Skip to main content

[3.1.1] - 2026.09.09

修复

  • 修复 seastart 流媒体下订阅远端视频后画面全黑的问题:远端画面按「频道_用户标识_轨道标识」的索引键分发,而频道名与用户标识本身可能含下划线,原先按下划线拆键取到的是频道名,每一帧都派发到不存在的成员上;
  • 修复 seastart 流媒体下频道内有多个发布者时,第二个及以后发布者的画面渲染到错误成员控件上的问题:服务端会复用同一条媒体段依次转发不同发布者的码流,渲染绑定改为在订阅协商完成后按码流标识重建;
  • 修复主副码流的分层声明上报错位的问题:主层的variant与副层的fallbackIds原先被写到了对方的 RTCEngineStreamTrackModel 上,导致服务端收到的分层声明不可用;
  • 修复 seastart 流媒体下先协商数据通道、后追加媒体段时,新媒体段被单独建立传输通道的问题:订阅侧显式声明 BUNDLE 与 ICE 策略以匹配服务端的 ice-lite 单端口形态。

优化

  • 虚拟背景的人像分割固定走 CPU 推理,不再启用 CoreML。iPhone XS Max / iOS 18.7.9 实测(720p@25fps,300 帧均值)单帧耗时由 53.17ms 降至 20.61ms、installVirtualBackground:耗时由 1271ms 降至 130ms、进程 CPU 占用由 172% 降至 63%、内存由 83MB 降至 58.6MB,详见虚拟背景
  • 背景虚化改为降采样后高斯模糊再升采样,参与运算的像素降到原先的 1/16,图像合成口径与 Web、Android、鸿蒙端对齐;
  • seastart 流媒体的副码流不再单独建立轨道发布,改为在同一条连接上声明主层与副层两路联播编码,分层参数按层套用各自的缩放因子、最大码率与最大帧率。

变更

  • seastart 流媒体的订阅候选层收窄为只包含所订阅的那一层。候选层同时包含主副两层时,服务端会在同一个输出 SSRC 上依次转发两路 RTP 且不重写序列号,接收端会持续判定为重放丢包并在两种分辨率之间抖动。代价是不再由服务端在弱网下自动降级到副层,需要业务侧按场景自行调用 startRemoteView:trackId:view: 订阅低层码流。
RTCEngineKit的公开接口、回调签名与类型定义均未变化,已有业务代码无需改写,最低系统要求仍为 iOS 16.0。使用 seastart 流媒体的工程建议直接升级到本版本。

[3.1.0] - 2026.09.08

新增

  • 新增虚拟背景能力:installVirtualBackground:uninstallVirtualBackgroundenabledVirtualBackground:setVirtualBackgroundBlur:setVirtualBackgroundImage:setVirtualBackgroundInferenceInterval:setVirtualBackgroundMaskSync:isVirtualBackgroundEnabled,支持人像分割后做背景虚化或背景替换,且装载不需要授权密钥
  • 虚拟背景与美颜作用于同一条共享摄像头采集链路,两者同时开启时顺序固定为美颜在前、虚拟背景在后,用法详见虚拟背景
  • SRTCDeviceType新增SRTCDeviceTypeHarmonyOS8),用于识别鸿蒙端成员。

变更

  • 最低系统要求由 iOS 10.0 提升到 iOS 16.0
  • CocoaPods 集成新增onnxruntime-c~> 1.24.0)依赖,SDK 内部只保留其未定义符号,由接入 App 在链接期解决;手动集成需自行引入onnxruntime.xcframework

修复

  • 修复美颜、虚拟背景开启后本端预览仍是摄像头原始画面、只有对端能看到效果的问题:本地预览改为显示前处理后的画面,两者都关闭时回到系统预览直出;
  • 修复前处理输出缓冲被提前释放,以及送显缓冲与下一帧写入在 GPU 上冲突导致的画面卡死;
  • 修复渲染组件与虚拟背景组件的装载、卸载、开关在采集线程渲染期间并发访问的问题。
本版本为不兼容变更:接入工程的IPHONEOS_DEPLOYMENT_TARGETPodfileplatform :ios需不低于 16.0,否则依赖无法参与解析。公开接口与回调签名均未删除或变更,已有代码无需改写。

[3.0.2] - 2026.08.28

修复

  • 升级librtc依赖,修复流媒体服务响应不再返回upload字段时因解析异常导致崩溃的问题。
RTCEngineKit的公开接口和回调签名均未变化,业务层无需调整代码。

[3.0.1] - 2026.08.14

修复

  • 修复3.0.0中屏幕共享无法推流的问题:采集服务改为在加入频道成功后即启动并保持监听,用户通过系统面板拉起录屏时扩展端才能连接成功,不再因为等待publishScreenRecord:而错过接入;
  • 修复-[RTCEngineKit stopScreenRecord]只取消发布、系统录屏不会真正结束的问题,恢复为断开扩展端连接结束本次录屏。

优化

  • 屏幕共享内部拆分为订阅与发布两层:加入频道即建立订阅使采集服务保持监听,publishScreenRecord:只表达本频道的推流意图;最后一个发布频道取消发布时结束本次系统录屏,最后一个频道离开时才释放采集服务;
  • RTCScreenRecordStatus为进程级状态,会同步上报给进程内全部在房频道,业务层判断本端是否正在共享应结合自身的发布意图,不要只依据该状态。
业务层调用时序不变:拉起RPSystemBroadcastPickerView→ 收到RTCScreenRecordStatusStart→ 调用publishScreenRecord:YES。使用3.0.0的工程建议直接升级到本版本。

[3.0.0] - 2026.08.12

新增

  • 新增频道实例类RTCEngineChannel,承载加入与离开频道、成员与频道数据、码流发布与订阅、音频发送、屏幕共享推送与自定义流等频道内能力;
  • 新增频道事件协议RTCEngineChannelDelegate,承载频道内的连接、成员、消息、音频、码流与屏幕共享事件;
  • RTCEngineKit新增createChannelWithDelegate:getChannels,用于创建频道实例与查询活跃频道;
  • RTCEngineChannel新增publishScreenRecord:,按频道粒度控制屏幕共享流的发布与停止。

变更

  • RTCEngineKit收敛为进程级单例,只保留初始化与销毁、频道实例管理、即时通讯、摄像头采集与预览、音频路由、屏幕采集进程接入、网络测速与美颜渲染;
  • joinChannelWithToken:leaveChannel:getMySelfgetRemoteUserspublishLocalVideo:startRemoteView:trackId:view:enabledSendAudio:setStreamMediaConfig:、自定义流等频道内接口由RTCEngineKit迁移到RTCEngineChannel
  • RTCEngineDelegate只保留onAudioRouteChange:previousRoute:onSpeedTestBeginedonSpeedTestUploadResult:downResult:connectResult:onApplicationPerformance:cpuUsage:四个进程级事件;
  • 其余频道内回调迁入RTCEngineChannelDelegate,并统一在首参携带事件来源频道实例,例如onJoinSucceed:userId:变更为engineChannel:onJoinSucceed:onRemoteUserLeaveChannel:userId:reason:变更为engineChannel:onRemoteUserLeaveChannel:reason:onScreenRecordStatus:变更为engineChannel:onScreenRecordStatus:
  • RTCStreamAudioModel.userIdRTCStreamReceiveModel.userId由只读改为可空可写。

优化

  • 同一进程可同时创建多个频道实例并加入多个频道,实例之间的成员数据、码流统计与渲染互不干扰;
  • 摄像头、音频路由、ReplayKit 采集与美颜渲染作为进程级共享能力统一由引擎管理,屏幕采集在首个频道发布时启动、最后一个频道停止发布时结束;
  • -[RTCEngineKit destroy]会先销毁全部存活频道实例并等待其离开完成,再释放进程级资源。
本版本为不兼容变更。业务层需改为通过createChannelWithDelegate:持有频道实例,改写全部频道接口调用,并把频道内回调迁移到RTCEngineChannelDelegate的新签名,否则相关接口无法编译、回调不再被触发。

[2.5.10] - 2026.08.05

变更

  • onReconnecting回调新增频道名称参数,签名变更为onReconnecting:
  • onDisconnected:errCode:errMsg:回调新增频道名称参数,签名变更为onDisconnected:reason:errCode:errMsg:
  • onCustomMessage:action:userId:sessionId:nickname:回调新增频道名称参数,签名变更为onCustomMessage:content:action:userId:sessionId:nickname:

优化

  • 连接断开、开始重连和自定义消息事件均可直接获取来源频道,多频道场景下业务层不再需要自行推断。
本版本为不兼容变更,升级后需同步调整上述三个回调的实现,否则回调将不再被触发。

[2.5.9] - 2026.07.24

新增

  • 新增enabledAudioModule:接口,用于设置本端音频单元启停。

优化

  • 录像直播等本端不采集、不接收 RTC 音频的纯本地播放场景,可停用流媒体语音处理单元(VPIO),避免本地播放器音量被压低;
  • 每次进房自动复位音频单元为自动管理,消除上一会话手动停用状态跨会话泄漏。

[2.5.8] - 2026.07.23

修复

  • 修复已连接蓝牙耳机进入音视频服务时,音频会话重配后可能停留在扬声器或听筒的问题。

优化

  • 未显式选择扬声器或听筒时,SDK 会主动恢复可用外设,并优先使用蓝牙耳机;
  • 音频会话重配期间成功恢复外设时,不再向业务层上报临时的内置音频路由;
  • 保留业务层对扬声器或听筒的显式选择,外设恢复失败时按默认内置路由回落。

[2.5.7] - 2026.07.23

修复

  • 修复请求的摄像头无法创建输入时,本地预览无画面的问题;
  • 修复摄像头停止、重开或切换期间,旧异步采集任务可能干扰当前预览的问题。

优化

  • 增加摄像头输入可用性校验与自动回退,请求设备不可用时自动使用另一可用摄像头;
  • 增加首帧超时检测,底层采集器初始化成功但未输出画面时自动尝试另一可用摄像头;
  • 完善采集代次隔离和预览容器恢复,避免过期回调影响当前采集状态。

[2.5.6] - 2026.07.23

修复

  • 修复目标摄像头不可用并回退到实际设备后,摄像头方向状态和本地预览镜像不一致的问题;
  • 修复后置摄像头本地预览可能被错误镜像的问题;
  • 修复音频路由切换系统调用失败仍返回成功,以及无目标外设时错误回退的问题;
  • 修复音频会话中断结束时过早清除恢复状态的问题。

优化

  • 分离默认内置路由、显式选择与系统实际路由,外设接入及多个外设之间的选择交由 iOS;
  • 优化外设拔出、流媒体重连和音频单元重置后的路由恢复策略;
  • 音频路由通知注册改为幂等,完善路由切换失败日志。

[2.5.5] - 2026.07.15

变更

  • 升级librtc依赖;
  • 成员加入和离开频道回调不再过滤当前用户。

[2.5.4] - 2026.07.14

修复

  • 修复启用本地日志后宿主 App 的标准输出和标准错误被独占重定向,导致 Xcode 控制台日志不可见的问题。

优化

  • 本地日志采集改为全进程 Pipe Tee 模式,同时保留日志文件和原控制台输出;
  • 优化日志采集的启停、失败回滚和资源释放流程,避免日志输出背压影响宿主 App。

[2.5.3] - 2026.07.13

修复

  • 升级librtc依赖,修复观众身份入会问题。

[2.5.2] - 2026.07.02

修复

  • 修复WebRTC采集本地预览镜像setLocalPreviewMirror:不生效的问题(镜像仅作用于本地预览,推流不镜像)。

[2.5.1] - 2026.07.02

修复

  • 修复WebRTC采集竖屏下画面横向的方向问题;
  • 采集方向统一跟随界面方向,支持固定竖屏、固定横屏与自动旋转。

[2.5.0] - 2026.06.18

新增

  • 新增设置本地预览镜像接口setLocalPreviewMirror:
  • 新增获取当前摄像头方向接口currentCameraDirection
  • 新增摄像头方向枚举RTCEngineCameraDirection

[2.4.7] - 2026.06.16

新增

  • 新增订阅远端转推音视频流接口startRemoteRetweet:view:(webrtc 取流,目前仅支持wangsu供应商);
  • 新增停止订阅远端转推音视频流接口stopRemoteRetweet:
  • 新增流媒体接收转推流状态变更回调onReceiveRetweetStreamStatusChange:status:

[2.4.6] - 2026.04.30

新增

  • 升级重构支持Seastart SFU 26.4协议;
  • 新增流媒体质量等级RTCStreamQualityLevel
  • 新增流媒体质量采样数据RTCStreamQualitySampleModel
  • RTCEngineStreamTrackModel数据结构新增fallbackIdsvariant字段;
  • 新增服务端上行质量检测回调onSendQualitySample:
  • 新增服务端下行质量检测回调onReceiveQualitySample:

[2.4.5] - 2026.04.13

修复

  • 修复音频防抖计时器误操作释放,导致同时发送视频和音频时音频推流异常问题。

[2.4.4] - 2026.03.12

新增

  • 共享流连接新增Audio Track,共用麦克风采集的轨道;
  • 新增发布视图录制的共享流接口publishScreenViewCaptureWithPixelBuffer:displayAngle:
  • 新增设置视图采集共享接口enabledViewCaptureShare:

[2.4.3] - 2026.02.28

新增

  • 流媒体配置新增forceLandscape参数,用来业务层强制横屏设置;
  • 使用非自研流媒体供应商时的视频采集重构为AVCaptureSession定义实现等;
  • 采集成功后的操作调整到主线程。

[2.4.2] - 2025.12.15

修复

  • 已知问题修复以及相关优化。

[2.4.1] - 2025.11.28

修复

  • 修复部分已知问题以及相关优化。

[2.4.0] - 2025.11.17

新增

  • 自定义消息回调新增会话标识和用户昵称参数。

[2.3.1] - 2025.10.23

优化

  • 日志上报数据结构变更;

新增

  • 新增本地音频采集和重采样数据回调;

修复

  • 修复黑窗口日志引起的崩溃;
  • iPad设备共享屏幕适配;
  • 若干已知问题修复。

[2.3.0] - 2025.08.30

新增

  • 增加自研sfu流媒体模块。

[2.2.11] - 2025.08.22

优化

  • 接口失败重试逻辑的相关优化。

[2.2.10] - 2025.08.20

修复

  • 新增自定义视频采集会话,修复采集会话不支持相机的动态格式的异常问题。

[2.2.9] - 2025.08.16

修复

  • 修复流媒体未启动就离开时的回调异常问题。

[2.2.8] - 2025.08.15

修复

  • 重连逻辑优化,修复取流异常问题。

[2.2.7] - 2025.08.13

修复

  • 优化cStr转换异常崩溃问题;
  • 新流媒体重连问题优化;
  • 音频路由重置优化等。

[2.2.6] - 2025.08.12

新增

  • 新增网宿流媒体模块封装。

[2.2.5] - 2025.06.24

优化

  • 新增最大成员数设置以及libwebrtc依赖,自研流媒体模块初步封装。

[2.2.4] - 2025.05.07

优化

  • 控制台日志重定向优化。

[2.2.3] - 2025.04.23

修复

  • 修复摄像头开关导致媒体采集参数失效的问题。

[2.2.2] - 2025.03.31

优化

  • 优化新增成员加入顺序问题;
  • 采集实时日志回调的逻辑处理新增优化,规避可能引起异常崩溃的异常;
  • 升级日志版本以及修复日志引起的异常崩溃。

[2.2.2-alpha.5+20250318] - 2025.03.18

修复

  • 升级librtc依赖,修复日志引起的异常崩溃。

[2.2.2-alpha.4+20250313] - 2025.03.13

优化

  • 优化修复部分异常崩溃等。

[2.2.2-alpha.3+20250226] - 2025.02.26

优化

  • 升级librtc依赖的mmkv版本以及部分已知问题修复。

[2.2.2-alpha.2+20250218] - 2025.02.18

优化

  • 采集实时日志回调的逻辑处理新增优化,规避可能引起异常崩溃的异常。

[2.2.2-alpha.1+20250123] - 2025.01.23

优化

  • 升级底层库,优化成员加入顺序问题。

[2.2.1] - 2025.01.17

修复

  • 修复有线耳机识别名称异常的问题。

优化

  • 视频角度更新问题优化。

[2.2.0] - 2025.01.10

新增

  • 新增即时通讯等功能;

优化

  • 订阅等实现流程优化;

修复

  • 修复已知问题。

[2.2.0-alpha.13+20250102] - 2025.01.02

优化

  • 流媒体发布视频数据流新增推流状态判断。

[2.2.0-alpha.12+20250102] - 2025.01.02

优化

  • 优化开启本地摄像头流程,先开启本地采集,再ChangeStreams,最后enabledPublish

[2.2.0-alpha.11+20241230] - 2024.12.30

优化

  • 优化订阅远端视频流逻辑;

修复

  • 升级底层库,优化修复异常崩溃问题。

[2.2.0-alpha.10+20241226] - 2024.12.26

优化

  • 优化修复部分异常崩溃问题。

[2.2.0-alpha.9+20241223] - 2024.12.23

新增

  • 新增加入频道事件优化,保证只有一次回调。

[2.2.0-alpha.8+20241221] - 2024.12.21

新增

  • 新增音频会话中断重启等逻辑;
  • 新增重启音频会话接口;
  • 接口enableImWithTokenjoinChannelWithToken新增超时检测逻辑;
  • 新增部分错误码;

优化

  • 音频编码格式修改默认为OPUS

修复

  • 新增libcurl库的c-areas依赖,修复部分相关异常问题。

[2.2.0-alpha.7+20241106] - 2024.11.06

优化

  • 流媒体接收状态回调处理适配混合流变更。

[2.2.0-alpha.6+20241106] - 2024.11.06

新增

  • 音频状态处理新增混合流逻辑。

[2.2.0-alpha.5+20241105] - 2024.11.05

新增

  • 日志组件获取下行数据状态以及远端音频状态时,新增混合流的过滤。

[2.2.0-alpha.4+20241101] - 2024.11.01

变更

  • 调整streamUpdate事件顺序,保证不会出现状态异常问题;
  • setStreamTracks接口逻辑处理保障在成功之后处理。

[2.2.0-alpha.3+20241030] - 2024.10.30

优化

  • 优化音视频状态变更逻辑。

[2.2.0-alpha.2+20241026] - 2024.10.26

新增

  • 处理码流数据变更事件,如果是视频移除事件新增停止订阅远端用户的视频流操作以及额外增加用户数据更新回调;
  • 本地变更码流变化新增我的数据更新回调;
  • 开启音视频等相关操作新增错误码实现。

[2.2.0-alpha.1+20241024] - 2024.10.24

变更

  • 码流数据变更事件移除对当前用户的过滤。

[2.1.2] - 2024.10.23

新增

  • 日志系统上报远端视频数据列表新增过滤合成流数据。

[2.1.1] - 2024.10.22

新增

  • 新增订阅与停止订阅远端合成画面视频流接口,即:startRemoteMixture:以及stopRemoteMixture

[2.1.0] - 2024.10.09

优化

  • 升级底层库,适配MQTT SSL连接,移除配置参数RTCEngineConfig中原有线路与分组字段。

[2.0.0] - 2024.09.14

优化

  • 底层优化重构。

[1.0.8-alpha.19+20240913] - 2024.09.13

新增

  • 新增即时通讯相关功能以及相关回调,详情请参看 即时通讯

[1.0.8-alpha.17+20240906] - 2024.09.06

优化

  • 用户退出时,停止订阅该用户的所有远端流,规避上层通过userId停止订阅时,由于底层数据清除导致的无法释放远端画布资源的异常。

[1.0.8-alpha.16+20240903] - 2024.09.03

变更

  • 流媒体接收状态数据回调参数变更为列表;

优化

  • 流媒体上行与下行数据回调优化。

[1.0.8-alpha.15+20240828] - 2024.08.28

新增

  • 流媒体接收远端流状态变更回调新增轨道标识。

[1.0.8-alpha.14+20240828] - 2024.08.28

新增

  • 新增onReceiveStreamStatusChange:status:()回调,表示:流媒体接收远端流状态变更。

[1.0.8-alpha.13+20240819] - 2024.08.19

修正

  • 升级**librtc**依赖,修复离开频道时更新码流数据引起的崩溃以及网络超时时间引起的异常崩溃问题;

变更

  • 变更重连成功回调参数。

[1.0.8-alpha.12+20240813] - 2024.08.13

修正

  • 移除捆绑中二进制文件,解决构建验证异常问题。

[1.0.8-alpha.11+20240813] - 2024.08.13

优化

  • 流媒体内部重连逻辑优化,新增扬声器状态重置以及音视频发送状态优化等;

修正

  • 若干已知问题修复。

[1.0.8-alpha.10+20240810] - 2024.08.10

修正

  • 优化底层逻辑,修复部分已知问题。

[1.0.8-alpha.9+20240723] - 2024.07.23

修正

  • 移除bundle包中可执行文件,修复打包提交Asset validation failed的异常问题。

[1.0.8-alpha.8+20240719] - 2024.07.19

修正

  • 调整回调与消息监听顺序,保证回调时消息已监听成功.

[1.0.8-alpha.7+20240719] - 2024.07.19

新增

  • 流媒体连接成功与重连成功新增恢复音视频发送状态设置。

[1.0.8-alpha.6+20240718] - 2024.07.18

新增

  • 新增getDrawingHost获取画板地址接口;

变更

  • 移除onChannelDestroy:()回调。

[1.0.8-alpha.5+20240716] - 2024.07.16

新增

  • 流媒体连接成功新增resetRemoteStream处理,优化流媒体连接成功顺序滞后导致的订阅远程流异常。

[1.0.8-alpha.4+20240712] - 2024.07.12

修正

  • 调整入会成功回调顺序,修复异常的取流问题。

[1.0.8-alpha.3+20240705] - 2024.07.05

修正

  • 修复重定向日志后,无法恢复标准输出到控制台问题。

[1.0.8-alpha.2+20240704] - 2024.07.04

新增

  • 流媒体配置参数新增默认音频路由;
  • 新增自己数据更新回调;
  • 新增重连成功回调;

变更

  • 离开原因枚举变更为RTCLeaveReason

优化

  • 连接断开与自己被动离开合并回调。

[1.0.8-alpha.1+20240629] - 2024.06.29

重构

[1.0.7] - 2024.04.22

修正

  • 修复数据长度导致的解密失败问题。

[1.0.6] - 2024.04.19

新增

  • 新增解密接口decrypt:,用于外部解析鉴权令牌;

优化

  • 同步弱网策略、内部实现逻辑以及开发包瘦身等优化。

[1.0.5] - 2024.03.26

新增

  • 新增美颜、流媒体日志重定向等组件以及流媒体状态等级完善。

[1.0.4] - 2022.08.30

优化

  • 内部逻辑优化。

[1.0.3] - 2022.08.24

新增

[1.0.2] - 2022.08.08

新增

  • 新增视频美颜功能以及相关接口,详情请参考美颜功能

变更

  • 优化调整错误码规范,详情请参见错误码表

[1.0.1] - 2022.08.02

新增

  • 新增流媒体等相关接口;

优化

  • 重新设计内部实现;
  • 优化原有接口调用逻辑。

[1.0.0] - 2022.03.18

新增

  • 新增终端类型RTCTerminalType
  • 新增码流事件名称RTCEngineKitEventNameStreamsEvent
  • 初始化配置参数RTCEngineConfig新增终端类型terminalType和终端描述terminateDesc属性;
  • 新增变更码流信息changeWithStreams:changeType:
  • 新增类方法初始化RTC服务此方法外部可以持有和管理RTCEngine对象;
  • 初始化RTC服务新增userModel参数;
  • 新增只读属性engineConfiguserModel

变更

  • 原变更用户信息移除变更操作类型changeType参数;
  • 原初始化RTC服务方法initializeWithConfig新增delegate参数;
  • 原用户信息RTCEngineUserModelsdkno属性变更为linkidsessionId属性变更为sessionKey
  • 房间信息RTCEngineRoomMode 对象中 ID 属性变更为NSString类型;
  • RTCEngineConfig对象移除userModel属性;
  • sendMessageWithUserList:message:方法变更为sendMessageWithUserIds:message:;

优化

  • 内部逻辑优化。