[1.6.0] - 2026.10.30
新增
activeSpeakersDidChange含自己:快照里新增本端那一条(ActiveSpeakerInfo.isLocal == true),开麦且在说话时出现,与远端同一量纲(0~1,按 1/8 分档),一个阈值即可画「我」的音柱和「正在说话」。不必再自己挂meeting.srtc.audioCaptureProcessor算本端音量。SMeetingEngine.activeSpeakerOptions:透传 SRTC 的activeSpeakerOptions,可关掉本端(includeLocal = false)或调整采样参数,建议入会前设置。
变更
- 依赖升至 SRTC 1.6.0。网宿(CDN)会议里远端
level的口径与 SFU 会议统一(以前偏大两三倍且不分档),按数值写死阈值的请重新核对。
API 只新增不删改,1.5.5 的接入代码可直接编译;快照默认多了自己这一条,若业务把快照里的人都当远端处理,请用
isLocal 区分。做 iOS 全屏共享的工程,扩展 target 那条 srtc-swift-sdk 依赖请一起改成 exact: "1.6.0"。[1.5.5] - 2026.10.27
修复
- 网宿 CDN 频道里开着云录制切换屏幕共享,录制会被云端判为推流中断:视图录制(
startViewCaptureShare())与屏幕共享轮流发布时,旧版每次都换一个新轨道 ID,而网宿的流名由轨道 ID 决定,云端录制只拉开录时的那一路流。表现为「开录 → 开共享 → 停共享」后约 30~45 秒收到roomMcuTask异常(检测到推流中断了),录像只到切换前。现在同一房间里视图录制轨与屏幕共享轨沿用同一个轨道 ID,两者仍各自采集、互斥发布;录像覆盖整个过程。SFU 频道行为不变。
变更
- SRTC 依赖升至 1.5.5(新增指定轨道 ID 的建轨接口),详见 SRTC Swift 更新日志。
- iOS 全屏共享扩展 target 那条
srtc-swift-sdk依赖需同步改为exact: "1.5.5",与本版清单里 pin 的版本一致,否则依赖解析失败。 - 网宿频道里,视图录制轨仍在发布时就去发布屏幕共享,会抛 SRTC 的
invalidState,不再出现两路同时发布;按现有用法「先stopViewCaptureShare()再共享」不受影响。
没有接口变化,1.5.4 的接入代码可直接升级。平台下限不变(iOS 16 / macOS 14)。
[1.5.4] - 2026.10.24
变更
- SRTC 依赖升至 1.5.4:修复切换前后置后本端摄像头的前后置状态不更新(后置预览被镜像、关开摄像头后回到前置),详见 SRTC Swift 更新日志。会议层的
switchCamera()直接受益,代码无改动。 - iOS 全屏共享扩展 target 那条
srtc-swift-sdk依赖需同步改为exact: "1.5.4",与本版清单里 pin 的版本一致,否则依赖解析失败。
没有接口变化,1.5.3 的接入代码可直接升级。平台下限不变(iOS 16 / macOS 14)。
[1.5.3] - 2026.10.21
修复
- 接口返回的
data为null等非对象值时进程崩溃:部分接口(如mcuRecordDetail)的回包data不是对象或数组时,旧版在内部转换时触发 Objective-C 异常,try/try?都接不住,App 直接闪退(iOS 上开启云录制后查询录制详情即可复现)。现在统一抛SMeetingError.responseParseFailed(203356/205356),由调用方按普通错误处理。
变更
- SRTC 依赖仍为 1.5.3,iOS 全屏共享扩展 target 那条
srtc-swift-sdk依赖保持exact: "1.5.3"不变。
只有修复,没有接口变化,1.5.2 的接入代码可直接升级。平台下限不变(iOS 16 / macOS 14)。用到录制详情的 1.5.1 / 1.5.2 接入方建议尽快升级。
[1.5.2] - 2026.10.21
修复
- iOS 上挂了全屏共享监听后,视图录制(
startViewCaptureShare())开不起来:入会后调过prepareBroadcastShare的 App(会议类 App 通常一进房就挂监听,等用户从系统胶囊开播),旧版会把「监听已挂上」当成「正在屏幕共享」,startViewCaptureShare()一律抛invalidState,云录制等依赖视图录制的功能因此拿不到画面。现在只有屏幕共享真正发布后才互斥,只挂监听不影响视图录制。 - 同一轮停止共享并发调用时广播监听被重复拆建:会议后端下发的停止共享事件可能早于
stopShare()的请求返回,两条路径会同时拆、建同一个广播监听,偶发停止后监听没有恢复。现在同一轮停止会合并,后到的调用等待这一轮收尾完成后再返回。
变更
- SRTC 依赖仍为 1.5.3,iOS 全屏共享扩展 target 那条
srtc-swift-sdk依赖保持exact: "1.5.3"不变。
只有修复,没有接口变化,1.5.1 的接入代码可直接升级。平台下限不变(iOS 16 / macOS 14)。
[1.5.1] - 2026.10.10
新增
- 服务端合成画面可以订阅了:
subscribeRemoteVideoMcu()/unsubscribeRemoteVideoMcu()/startPlayRemoteVideoMcu(view:)。合成画面由服务端以保留身份__mcu__发布、不属于任何会中成员,所以不再需要 uid。合成任务(McuTaskType.mix)比订阅晚开始时,在roomMcuTask报running后再订一次(调用幂等)。 SignInfo新增可选的hostName(发起人昵称)。服务端的签到列表目前不返回该字段,一般为nil,取不到时按uid找会中成员,或使用signInActivity事件里的hostName。
修复
- 授予 / 撤销联席主持人后,按
RoomInfo.coHosts判断的角色慢一拍:房间的联席名单比角色变更广播晚到,旧版在userRoleDidChange发出时coHosts还是旧的 —— 授予后仍算普通成员、撤销后仍算联席。现在事件发出前 SDK 已按新角色同步好coHosts,随后到达的房间属性仍以服务端为准。
变更
startPlayRemoteVideoMcu(view:uid:)标为废弃,uid不再使用,等同startPlayRemoteVideoMcu(view:)。旧实现按「合成画面是某个成员的摄像头轨道」查找,在当前链路下必抛remoteTrackUnavailable。- SRTC 依赖升至 1.5.3(新增频道级合成视频订阅,见音视频 SDK 的更新日志)。iOS 全屏共享的扩展 target 那条
srtc-swift-sdk依赖请同步改为exact: "1.5.3"。
只新增接口与修复,1.5.0 的接入代码可直接升级(用到旧的
startPlayRemoteVideoMcu(view:uid:) 会有废弃警告)。平台下限不变(iOS 16 / macOS 14)。已验证:屏幕共享扩展进程被系统杀掉或崩溃(人还在会里)时,SDK 会自动结束共享并通知会议后端,其它端 1 秒内收到停止事件,无需业务处理。[1.5.0] - 2026.10.10
新增
- IM 事件真正派发:
enableIm之后,被叫(meeting(_:imCallCalling:))、会议提醒(imMeetingRemind)、等候室放行(imAdminMoveOutWaitingRoom)、小组求助(imUserHelpSubMeeting)以及 IM 重连中 / 已重连 / 被动断开这几个回调现在都会触发(旧版这些回调没有派发点,永远收不到)。新增meeting(_:imDidConnect:)(ImConnectEventData)与meeting(_:imDidReceiveMessage:)(ImMessageEventData,任何 action 的原始消息透传)。ImMeetingRemindContent新增creatorId;ImDisconnectEventData新增disconnectReason、errorCode、errorMessage。主动disableIm不再上抛断开回调。 - 签到导出:
signInExportDetail(epoch:destination:),下载签到明细落盘并返回本地文件地址。 - 小组里拉主会场在线成员:新增重载
adminListOnlineMember(meetingId:page:perPage:),原方法不变。 - 转移主持人带出原主持人:新增
meeting(_:roomHostDidMove:)(RoomHostMoveEventData,含原主持人sourceUid),原主持人本地降为普通成员并补发userRoleDidChange。 - 系统消息与普通聊天分离:
RoomChatMsgEventData新增action与isSystem,主持人发出的系统消息可以与普通聊天区分。 MeetingInfo新增entryMutePolicy(入会静音策略)与content,均为可选,缺失或取值不认识时为nil。AgentInfo新增connParams(连接参数)与connSubjects(GB28181 通道表)及公开构造器。国标设备要按「设备编号:通道编号」邀请,通道展开由调用方完成。
修复
detailRoom(会议详情)必失败:服务端的会议详情回包不带created_at,旧版每次抛responseParseFailed,会议详情、按房间号加入、从被叫 / 提醒 / 求助入会都走不通。现在缺失时按 0 解码。- 几处列表的宽松解码:空小组的
users为null、等候室列表不带avatar、在线成员的device_type/join_at为整数,此前都会让整张列表解码失败。
变更
- SRTC 依赖升至 1.5.2(iOS 音频会话两处修复,见音视频 SDK 的更新日志)。
ImEventType新增connected、message,RoomEventType新增roomHostMoved。
SMeetingDelegate 新增的回调都有默认实现,不实现不影响编译;对 ImEventType / RoomEventType 做 switch 的代码请带上 @unknown default 分支。平台下限不变(iOS 16 / macOS 14)。做 iOS 全屏屏幕共享的接入方,扩展 target 那条 srtc-swift-sdk 依赖要一并改为 exact: "1.5.2",与本版清单里 pin 的 SRTC 版本一致,否则依赖解析失败。[1.4.1] - 2026.10.01
修复
McuTaskStatus与服务端取值对齐:waitStart = 0(待开始)、running = 1、waitEnd = 2(待结束)、exception = 3、normal = 4;waitStart/waitEnd是指令已下发、底层任务尚未确认的临时过渡状态。mcu_task事件遇到不认识的取值不再整条丢弃:此前服务端下发本版本 SDK 不认识的task_type/task_status时,meeting(_:roomMcuTask:)根本不会回调。现在照常回调,枚举落到新增的.unknown,原始值见RoomMcuTaskEventData新增的taskTypeRaw/taskStatusRaw。mcuRecordDetail(meetingId:)适配服务端新的「任务 + 录制文件」两级返回:服务端已把任务 ID 的键名改为task_id,并把录像文件信息下沉到分片列表,旧版在新服务端上解码失败、直接抛错。现在新老服务端的返回都能解出来,缺失的字段取零值。
新增
McuTaskType新增audio = 4(录音)、live = 8(直播流)与兜底的unknown = -1;McuTaskStatus新增waitStart、waitEnd与unknown。unknown只用于解码,不要拿来发请求。McuRecordDetail新增taskType、beganAt、endedAt、recordCount、totalDuration、totalSize、records、now;新增录制文件类型McuRecordFile(recordId、seq、vodSize、duration、beganAt、endedAt、offsetMs、reason、addr等,addr为有效期 2 小时的预签名播放地址)。
变更
McuRecordDetail的vodKey、vodSize、mcuAt、mcuDur标为废弃,类型改为可选(新服务端不再返回vodKey/vodSize):录像文件改看records,vodSize→totalSize,mcuAt→beganAt,mcuDur→totalDuration。- SRTC 依赖升至 1.5.1(
AudioRoute.displayName按系统语言返回中 / 英文,见音视频 SDK 的更新日志)。
升级时需要留意两处编译层面的变化:用到
McuRecordDetail.vodKey 等四个字段的代码会出现废弃告警,且它们变成了可选类型,按非可选使用的地方要改(建议直接换成上面的新字段);对 McuTaskStatus / McuTaskType 做 switch 的代码,请带上 @unknown default 分支。平台下限不变(iOS 16 / macOS 14)。做 iOS 全屏屏幕共享的接入方,扩展 target 那条 srtc-swift-sdk 依赖要一并改为 exact: "1.5.1",与本版清单里 pin 的 SRTC 版本一致,否则依赖解析失败。[1.4.0] - 2026.09.30
新增
SMeetingEngine.language(String?,如"en"、"zh-CN";nil= 跟随系统语言)与只读的currentLanguage。它与meeting.srtc.language是同一个进程级设置:会议层和 RTC 层请求后端都带Accept-Language,后端业务错误(码 ≥ 1000)的文案随之中 / 英;SDK 自身的报错一律英文,不受它影响。建议在login之前设置。SMeetingError.baseCode(低 3 位语义码,跨端统一)与httpStatus(HTTP 非 200 时的状态码,仅httpError有值)。SMeetingError实现CustomNSError:桥接成NSError后domain = "cn.seastart.smeeting"、code为完整码(如203003)。- 新增错误 case:
httpError(status:message:)(007)、userNotFound(010)、invalidState(011)、invalidArgument(012)、remoteTrackUnavailable(uid:desc:)(209)、requestTimeout(353)、requestCancelled(354)、responseParseFailed(356)。
变更
- 报错文案全部改为英文(如
notLoggedIn由「您尚未登录meeting sdk」改为Not logged in to the meeting SDK)。message是给开发者和日志看的,给终端用户的提示请按code/baseCode自行映射,不要直接展示message。 - HTTP 状态码不再拼进错误码:此前 HTTP 500 会报成
203500、响应解析失败会算出202999这类码,现在 HTTP 非 200 报httpError(203007,状态在httpStatus),响应解析失败报responseParseFailed(203356)。 - 采集 / 权限错误原样透传 RTC 层的
SRTCError(如103231无摄像头权限、103251无麦克风权限、103039屏幕共享被拒),catch时两类都要处理。 - SRTC 依赖升至 1.5.0(同样是错误码重排 + 英文化,见音视频 SDK 的更新日志)。
旧码 → 新码对照
iOS 前缀为203、macOS 为 205,下表以 iOS 为例(macOS 把前缀换成 205)。
未变化的码:
notLoggedIn 001、tokenExpired 002、notInMeeting 003、unauthorized 004、tokenInvalid 005、alreadyInMeeting 006、deviceError 008、internalError 009(仅文案改英文)。后端业务码(≥ 1000)仍原样透传,文案现在随 language 返回中文或英文。
已有的
SMeetingError case 一个没删、签名没改,编译层面 1.3.10 的接入代码可直接升级;需要检查的是按数值 / 中文文案判断错误、以及 switch 里依赖上表旧 case 的分支。平台下限不变(iOS 16 / macOS 14)。做 iOS 全屏共享的工程,扩展 target 那条额外的 srtc-swift-sdk 依赖需同步改为 exact: "1.5.0",与本包清单里 pin 的版本保持一致,否则依赖解析会直接失败。[1.3.10] - 2026.09.23
变更
- SRTC 依赖由 1.4.6 升至 1.4.7。该版为纯修复:未知
device_type不再让整份成员列表解析失败、SFU 逐条拒绝的订阅不再静默失败(补重试与登记回滚),详见 SRTC 的更新日志。
本版没有会议层自身的功能改动,仅为与 SRTC 1.4.7 保持配套关系而提升版本号,没有公开 API 变动,没有破坏性变更,1.3.9 的接入代码可直接升级。平台下限不变(iOS 16 / macOS 14)。做 iOS 全屏共享的工程,扩展 target 那条额外的
srtc-swift-sdk 依赖需同步改为 exact: "1.4.7",与本包清单里 pin 的版本保持一致,否则依赖解析会直接失败。[1.3.9] - 2026.09.23
修复
- 主持人强停共享后,共享状态会被重新上抛:
admin_stop_room_share此前只停了本端发布,没有同步清掉房间的共享状态(share_state/share_uid)。残留的状态会被随后到达的轨道或属性刷新重新判定成「有人正在共享」,表现为共享刚被强停就又冒出来、房内出现停不掉的共享。现在强停时一并收敛房间状态。 - 屏幕共享开始事件补上第四条汇合路径:1.3.8 的三路汇合仍漏了「用户快照刷新(
freshUserInfo)先于其它三路到达」这一时序。此时快照会把shareState静默改成screen,各路径共用的防重条件反过来把后到的那一路也拦掉,结果是事件一次都不发,房内其他人收不到共享、画面不显示。现在快照刷新在shareState跃变时也会上抛事件,四路中谁最后到齐由谁触发。该跃变判定只对远端生效,本端共享仍由发布与停止流程显式上抛。 - 共享者直接离会后,会议永久停在「某人正在共享」:共享方进程被杀或断网时不会有
user_stop_room_share,此前没有任何路径收敛,画面一直挂着。现在在成员离房(userDidLeave)时收敛房间共享状态并上抛停止事件——「人已离房」不是暂态,比轨道消失可靠。
变更
- SRTC 依赖保持 1.4.6 不变,本版只有会议层改动,没有公开 API 变更。
本版为纯修复,没有破坏性变更,1.3.8 的接入代码可直接升级。做 iOS 全屏共享的工程,扩展 target 那条额外的
srtc-swift-sdk 依赖仍为 exact: "1.4.6",本次无需改动。仍未覆盖「人还在会里、只有 Broadcast Extension 单独挂掉」这一种情况:此时既不会有 user_stop_room_share,也不会有成员离房事件。该场景需在共享方本端补齐,不要拿 screen 轨道消失当停止判据——轨道消失也可能只是网络抖动,会误撤画面。[1.3.8] - 2026.09.23
新增
updateLocalCameraView(_:):在不中断采集的前提下,把本地摄像头预览的渲染器搬到另一个视图上。UIKit 宿主在宫格重建、首屏与视频墙切换这类布局变化里会销毁并重建承载预览的视图,此前只能关掉摄像头再开一次,现在直接搬迁即可。
修复
- 摄像头已开启时重复调用
requestOpenCamera(view:),新传入的预览视图被忽略:此前复用已有轨道的分支直接返回,新视图没有被接上,渲染器还挂在已从视图树上摘掉的旧视图,表现为本端画面黑屏(对端一切正常)。现在复用分支会把渲染器搬到新传入的视图上。 - 已在会中的成员收不到屏幕共享开始事件:屏幕共享的开始信号是异步汇合的——房间共享状态(
user_start_room_share广播、频道属性里的share_state/share_uid)与screen轨道各走各的路径。此前两条路径各自判定,且没有覆盖属性刷新这一路:广播先到时轨道还没登记、轨道先到时房间状态还没刷新,两边都各自放弃,之后属性刷新到了也没有人补判,结果是已经在会中的成员完全收不到ROOM_SHARE_START,退出重进反而能看到(重进走的是另一条已有共享的通知路径)。现改为三路汇合判定,谁最后到齐由谁触发,防重逻辑不变。
变更
- SRTC 依赖升级到 1.4.6(含摄像头方向与横屏屏幕共享画面倒 180° 两项修复,详见音视频 SDK 的更新日志)。
本版为纯新增 API + 修复,没有破坏性变更,1.3.7 的接入代码可直接升级。
[1.3.7] - 2026.09.18
新增
- 会议标题变化事件:新增
SMeetingDelegate的meeting(_:roomTitleDidChange:)回调、RoomTitleChangeEventData(title/previousTitle)与RoomEventType.roomTitleChanged。主持人改主会议标题、以及小组会议改名(adminUpdateSubMeetingTitle)都会触发,对应老MeetingKit的onRoomMeetingTitleChanged:。 - 远端视频收流超时 / 恢复:新增
meeting(_:didChangeReceiveStreamStatus:)回调与RoomEventType.receiveStreamStatusChanged,按轨道判定某一格画面是否停止出帧,用来开关「加载中」指示。载荷直接复用音视频 SDK 的ReceiveStreamStatus,未再包一层会议专属结构。对应老MeetingKit的onReceiveStreamStatusChange:streamType:status:。 - 音频单元启停:新增
SMeetingEngine.setAudioModuleEnabled(_:)与isAudioModuleEnabled(iOS),是音视频 SDKAudioRouteSession同名接口的薄封装,供录像直播课这类纯本地播放场景使用。
变更
- SRTC 依赖升级到 1.4.5。
roomTitleDidChange 的载荷没有 opUid:会议改名没有独立的广播指令,事件是频道属性更新后比对标题得出的,属性里只有结果没有操作者。后端补上对应广播指令后会再带上。三个协议方法均带默认空实现,无破坏性变更,1.3.6 的接入代码可直接升级。不要用 connectionQualityDidChange 代替收流状态事件:前者是整条链路的质量档位,不是某一路画面的卡顿,详见音视频 SDK 的更新日志。[1.3.6] - 2026.09.17
新增
MeetingUserInfo新增drawDisabled字段,可直接读取成员的涂鸦禁用状态。- 新增
SMeetingDelegate的meeting(_:userDrawDisabledDidChange:)回调与UserDrawDisabledChangeEventData,主持人改动成员涂鸦权限时触发,见主持人管控。
变更
- 此前仅有
adminUpdateUserDrawDisabled(targetId:drawDisable:)这个设置接口,状态读取与变化事件缺失,涂鸦权限无法在业务侧完整实现,本版补齐。协议方法带默认空实现,无破坏性变更,1.3.5 的接入代码可直接升级。 - SRTC 依赖保持 1.4.4。
[1.3.5] - 2026.09.15
变更
- 视图录制共享在 WangSu(CDN) 推流中附带麦克风音频;移除共享接口
messageOnly模式。依赖 SRTC 1.4.4。
[1.3.4] - 2026.09.15
新增
startViewCaptureShare():创建并发布使用screen描述的自定义视频轨道,调用方可将视图渲染为CVPixelBuffer,通过返回的LocalVideoTrack.pushFrame持续推帧。stopViewCaptureShare():停止视图录制视频轨道,不关闭或取消发布麦克风。使用方式与限制见媒体控制接口。
变更
- SRTC 依赖保持 1.4.3,现有接入代码兼容;使用新增接口需将 SMeeting 升至 1.3.4。
[1.3.3] - 2026.09.15
变更
- 依赖的 SRTC 升级到 1.4.3:WangSu(CDN) 屏幕共享流附带一路音频供云端录制使用,并修复了取消发布音频失败后麦克风轨道句柄丢失的问题,详见音视频 SDK 的更新日志。本版本 SMeeting 自身无改动,无公开 API 变动,1.3.2 的接入代码可直接升级。
iOS 全屏共享的扩展 target 那条额外依赖要跟着升到 1.4.3:
.package(url: "https://github.com/seastart/srtc-swift-sdk.git", exact: "1.4.3")。它必须与本 SDK 清单里 pin 的版本一致,否则依赖解析冲突,见集成方式。[1.3.2] - 2026.09.12
新增
requestShare(source:preset:view:messageOnly:byAdmin:adminUid:)新增excludedWindowIds与excludesCurrentApplication两个带默认值的参数,透传给音视频层,用于 macOS 整屏共享时挖掉自家的某些窗口。现有调用点源码兼容。
变更
- 依赖的 SRTC 升级到 1.4.2:macOS 整屏共享改为默认包含本 App 自己的窗口(此前整个进程都被排除),并修复了「只共享屏幕音频时麦克风被一起发出去」,详见音视频 SDK 的更新日志。
iOS 全屏共享的扩展 target 那条额外依赖要跟着升到 1.4.2:
.package(url: "https://github.com/seastart/srtc-swift-sdk.git", exact: "1.4.2")。它必须与本 SDK 清单里 pin 的版本一致,否则依赖解析冲突,见集成方式。[1.3.1] - 2026.09.11
变更
- 依赖的 SRTC 升级到 1.4.1:修复 WangSu(CDN) 频道下活跃说话人事件不触发的问题。会议若使用 CDN 流媒体,
SMeetingDelegate的meeting(_:activeSpeakersDidChange:)现在同样会收到事件(此前仅 SeaStart 频道有数据),详见音视频 SDK 的更新日志。
iOS 全屏共享的扩展 target 那条额外依赖要跟着升到 1.4.1:
.package(url: "https://github.com/seastart/srtc-swift-sdk.git", exact: "1.4.1")。它必须与本 SDK 清单里 pin 的版本一致,否则依赖解析冲突,见集成方式。[1.3.0] - 2026.09.09
新增
- 虚拟背景:
SMeetingEngine新增installVirtualBackground(modelPath:)、uninstallVirtualBackground()、enableVirtualBackground(_:)、isVirtualBackgroundEnabled、setVirtualBackgroundBlur(level:)、setVirtualBackgroundImage(_:)、setVirtualBackgroundInferenceInterval(_:)、setVirtualBackgroundMaskSync(_:),以及实例访问器virtualBackground(诊断用只读状态与丢帧计数),装载不需要授权密钥,详见虚拟背景;- 属设备级配置,设置同时作用于全部会议;会中切换摄像头、关掉摄像头再打开、断线重连后都不需要业务层重新下发。
变更
- 依赖的 SRTC 升级到 1.4.0(虚拟背景、
DegradationPreference真正生效、预设改为maintainResolution、macOS 系统默认输出设备接口),详见音视频 SDK 的更新日志。
iOS 全屏共享的扩展 target 那条额外依赖要跟着升到 1.4.0:
.package(url: "https://github.com/seastart/srtc-swift-sdk.git", exact: "1.4.0")。它必须与本 SDK 清单里 pin 的版本一致,否则依赖解析冲突,见集成方式。[1.2.1] - 2026.09.07
修复
- 修复远端屏幕共享状态的判定:成员的
shareState现在要求「房间共享状态(share_state/share_uid)+ 存在 screen 轨道」两者都满足才跃变为共享中,不再单凭轨道存在就判定。修掉了轨道先于房间状态到达时的误报,以及房间状态未变、轨道短暂消失时误报「共享已停止」。 - 白板共享(
whiteBoard)无媒体轨道,仍完全由房间 props 推导,行为不变。
变更
- 依赖的 SRTC 升级到 1.3.2(含 mqtt
content为null的崩溃修复,以及DeviceType.harmonyOS)。
[1.2.0] - 2026.08.20
新增
- iOS 全屏屏幕共享:新增
prepareBroadcastShare(appGroup:preset:)、publishBroadcastShare(view:byAdmin:adminUid:)、stopBroadcastListening()、requestShare(broadcastAppGroup:...)与只读属性isShareBroadcastActive,可共享整个系统屏幕(此前 iOS 只能采到本 App 画面),需额外集成一个 Broadcast Upload Extension,详见屏幕共享; - 新增共享出帧事件
meeting(_:shareBroadcastDidStart:)与meeting(_:shareBroadcastDidFinish:),用于区分「监听已挂上」与「真的有画面了」,对应数据类型ShareBroadcastStartEventData、ShareBroadcastStopEventData; - iOS 音频路由:新增
defaultAudioRoute(持久默认)、setAudioRoute(_:)与clearAudioRouteOverride()(临时切换),以及currentAudioRoute、effectiveAudioRouteTarget、audioRouteOverride、isExternalAudioRouteActive、isAudioSessionActive、audioCallState、availableAudioRoutes()等只读状态,详见音频路由; - 新增音频路由事件
meeting(_:audioRouteDidChange:)与meetingAudioRouteDidRecoverFromInterruption(_:),对应数据类型AudioRouteChangeEventData; - 新增通话质量事件
meeting(_:didReceiveQualityReport:)、meeting(_:connectionQualityDidChange:)、meeting(_:activeSpeakersDidChange:)、meeting(_:didSwitchLayer:),数据结构直接复用 SRTC 的QualityReport、ConnectionQualityChange、ActiveSpeakersSnapshot、LayerSwitchedInfo。
变更
- 依赖
SRTC升级至1.3.0(此前为1.1.0),随之带来公开 API 上错误枚举由mqtt*改名为signaling*等变化,详见音视频 SDK 的更新日志; - 屏幕共享的
roomShareDidStart改为以 RTC 媒体轨道为准:远端 screen 轨道到达即上报,不再要求房间共享状态同时就位。
修复
- 修复远端成员开始共享后其它端收不到
roomShareDidStart、共享画面不显示的问题(房间状态与媒体轨道到达顺序不定时,两条上报路径会互相拦掉); - 修复共享方进程被杀、网络断开等情况下不上报
roomShareDidStop,会议状态永久停在「某人正在共享」的问题; - 修复白板共享在房间状态先到达时重复上报
roomShareDidStart的问题; exitRoom()改为精确离开会议自己那一个 RTC 频道,不再影响调用方通过meeting.srtc另外加入的频道。
iOS 全屏共享的扩展 target 需要额外声明一条依赖。
SRTCBroadcastKit是音视频层srtc-swift-sdk的产物,SwiftPM 不允许使用传递依赖的产品,因此要在工程里再加一条.package(url: "https://github.com/seastart/srtc-swift-sdk.git", exact: "1.3.0"),并且只加到扩展 target上,见集成方式。[1.1.0] - 2026.08.02
变更
- 依赖
SRTC升级至1.1.0,随之带来公开 API 上不再出现底层 WebRTC 类型等变化,详见音视频 SDK 的更新日志。
[1.0.0] - 2026.08.02
新增
- 首个正式版本,以预编译 XCFramework 形式通过 Swift Package Manager 分发,包含 iOS 真机、iOS 模拟器、macOS 三个平台切片;
- SDK 主入口类为
SMeetingEngine。