[1.4.0] - 2026.10.15
新增
adminListOnlineMemberOf(meetingId, page?, perPage?):指定会议的在线成员,对齐 Swift 版adminListOnlineMember(meetingId:page:perPage:)。主持人在分组讨论的小组里时,用它拉主会场的在线成员。SMeetingDelegate.onRoomTitleChange:会议改名(含小组会议),数据为title/previousTitle。来自频道属性比对,同时兼容 Objective-C 版发出的admin_update_title广播,两路到达时只报一次。getLocalAudioLevel():本端麦克风采集电平(0~1),用来画「我」的音量条(onActiveSpeakers只含远端)。未开麦时为undefined,轮询别超过 10Hz。MeetingInfo新增entryMutePolicy?(入会静音选项)与content?(会议说明);会议提醒ImMeetingRemindContent新增creatorId;聊天事件新增action(原始广播名)与isSystem(主持人后台下发的系统消息)。
变更
subscribeRemoteVideoMcu()改为无参、频道级订阅合成画面(接 SRTC 1.2.0 的Channel.subscribeRemoteVideoMcuTrack)。合成流由服务端以保留身份__mcu__发布、不在会议成员里,旧版按成员 uid 去找画面,永远订阅不到。旧的uid参数保留为可选、传了被忽略,旧调用照常编译。mcuStop(meetingId, taskType?):taskType可省略(停掉全部任务),并接受原始数字。服务端的task_type是按位组合(1 录像、2 合流、4 录音、8 直播流),自动录制起的任务可能是 9 这类组合值,停它时直接传RoomMcuTaskEventData.taskTypeRaw。
修复
- 用户从状态栏胶囊 / 控制中心停止屏幕共享后,远端冻屏:旧版轨道仍在发布、服务端也不知道已经停了。现在 SDK 接住系统侧停止,自动撤发布、通知服务端并上抛
onRoomShareStop。 - 本端发起的白板共享用
stopShare()停不掉:旧版没有屏幕轨道时直接返回、不通知服务端。现在与其它端一致,本端与远端都会收到onRoomShareStop。
无不兼容变更,1.3.0 的接入代码可直接升级。依赖不变,仍搭配 SRTC 1.2.0,只需替换
smeeting 的 HAR 并改 oh-package.json5 里的文件名。集成方式补充:除了模块级声明两个 HAR,工程级 oh-package.json5 还要再声明一次 srtc,否则 smeeting 引用的 SRTC 类型解析不到、编译报错。1.3.0 及以前同样需要,之前的文档漏写了,见集成方式。1.3.0 记的两条已知限制均已解决:会议后端已接受鸿蒙终端类型(10070 不再出现);合成画面改为频道级订阅后可正常订阅。[1.3.0] - 2026.10.14
新增
SMeetingDelegate.onReceiveStreamStatusChange(meeting, status: ReceiveStreamStatus):某一路远端视频收流超时 / 恢复,对应 Swift 版meeting(_:didChangeReceiveStreamStatus:)。透传 SRTC 1.2.0 的同名事件,按轨道判定,用来开关画面上的「加载中」指示。只报跳变,初始状态按 SRTCRemoteVideoTrack.isReceiveTimedOut现判。
变更
- 依赖升到 SRTC 1.2.0(HAR 的
peerDependencies为srtc@1.2.0),SRTC 本版的新增能力见 SRTC 鸿蒙版更新日志。
无不兼容变更,1.2.1 的接入代码可直接升级,但必须同时把 SRTC 换成 1.2.0(两个 HAR 都要替换并改
oh-package.json5 里的文件名),见集成方式。已知限制不变:会议后端仍拒绝鸿蒙终端类型(10070);subscribeRemoteVideoMcu 尚未改用 SRTC 1.2.0 的频道级合成流订阅,服务端合成画面仍订阅不到,待后续版本。[1.2.1] - 2026.10.10
新增
SignInfo新增可选的hostName(发起人昵称)。服务端的签到列表目前不返回该字段,一般为undefined,取不到时按uid找会中成员,或使用onSignInActivity里的hostName。
修复
- 授予 / 撤销联席主持人后,按
RoomInfo.coHosts判断的角色慢一拍:房间的联席名单比角色变更广播晚到,旧版在onUserRoleChange发出时coHosts还是旧的 —— 授予后仍算普通成员、撤销后仍算联席。现在事件发出前 SDK 已按新角色同步好coHosts,随后到达的房间属性仍以服务端为准。
无不兼容变更,1.2.0 的接入代码可直接升级。依赖不变,仍搭配 SRTC 1.1.0。
[1.2.0] - 2026.10.10
新增
AgentInfo新增connParams(服务端conn_params,原样透传)与connSubjects(GB28181 通道表,Map<通道编号, 通道名>,没有时为空表)。国标设备要按「设备编号:通道编号」邀请,直接用contact会被服务端拒绝;通道展开由调用方完成。
修复
- 集成方开启属性混淆后拿不到 GB28181 通道:
consumer-rules.txt补了conn_params、subjects两个字段的 keep。 AgentInfo.id在服务端下发数字 ID 时不再为空字符串。
[1.1.0] - 2026.10.08
新增
SMeetingEngine.setLanguage(lang?)/SMeetingEngine.language(静态):直接透传 SRTC 的SRTC.setLanguage/SRTC.language,会议层与 RTC 层共用这一个进程级设置。所有会议请求都带Accept-Language,后端业务错误(码 ≥ 1000)的文案随之中 / 英;SDK 自身的报错一律英文,不受影响。传空恢复为跟随系统语言。SMeetingError.baseCode(低 3 位语义码,跨端统一;后端业务码返回自身)与httpStatus(HTTP 非 200 时的状态码)。- 新增错误种类:
userNotFound(208010)、invalidState(208011)、invalidArgument(208012)、remoteTrackUnavailable(208209)、requestTimeout(208353)、responseParseFailed(208356)。 smeeting转出 SRTC 的SRTCError/SRTCErrorKind/CaptureDevice,只依赖smeeting的业务代码也能直接instanceof SRTCError。McuTaskType新增audio = 4(录音)、live = 8(直播流)与兜底的unknown = -1;McuTaskStatus新增waitStart = 0(待开始)、waitEnd = 2(待结束)与兜底的unknown = -1。unknown只用于解码,不要拿来发请求。RoomMcuTaskEventData新增taskTypeRaw/taskStatusRaw(服务端下发的原始值,枚举为unknown时用它判断)。McuRecordDetail新增taskType、beganAt、endedAt、recordCount、totalDuration、totalSize、records、now;新增录制文件类型McuRecordFile(recordId、seq、vodSize、duration、beganAt、endedAt、offsetMs、reason、addr等,addr为有效期 2 小时的预签名播放地址)。
修复
McuTaskStatus与服务端取值对齐:旧版定义为running = 1、exception = 2、normal = 3,与服务端下发的task_status错位——服务端的 2 是「待结束」、3 才是「异常结束」、4 才是「正常结束」,导致「待结束」被报成exception、「异常结束」被报成normal,真正的「正常结束」被整条丢弃。现在为waitStart = 0/running = 1/waitEnd = 2/exception = 3/normal = 4。mcu_task事件遇到不认识的取值不再整条丢弃:此前task_type/task_status不认识时onRoomMcuTask根本不回调,现在照常回调,枚举落到unknown,原始值见taskTypeRaw/taskStatusRaw。事件里缺task_status字段时按0(waitStart)处理,与 Swift 一致。mcuRecordDetail适配服务端「任务 + 录制文件」两级返回:任务 ID 兼容新的task_id与老的id,新老服务端的返回都能解出来,缺失的字段取零值;任务状态缺失或不认识时为unknown(以前默认成running)。
变更
- 报错文案全部改为英文(如
notLoggedIn由「您尚未登录meeting sdk」改为Not logged in to the meeting SDK)。detail是给开发者和日志看的,给终端用户的提示请按code/baseCode自行映射。 - 会议层错误码按「
208+ 统一码表低 3 位」出码,与 Swift 等端同号;HTTP 状态码不再拼进错误码。 McuRecordDetail的vodKey/vodSize/mcuAt/mcuDur标为废弃并改为可选(新服务端不再返回vodKey/vodSize):录像文件改看records,vodSize→totalSize,mcuAt→beganAt,mcuDur→totalDuration。- 依赖的 SRTC 升级至 1.1.0(
peerDependencies)。升级 SMeeting 时必须同步替换 SRTC 的 HAR。
旧码 → 新码对照
未变化的码:
notLoggedIn 001、tokenExpired 002、notInMeeting 003、unauthorized 004、tokenInvalid 005、alreadyInMeeting 006、networkError 007(连不上等传输层失败)、deviceError 008、internalError 009(仅文案改英文)。后端业务码(≥ 1000)仍原样透传,文案随 setLanguage 返回中文或英文。
已知限制
- 会议后端目前拒绝鸿蒙终端类型:登录(
login)时会收到后端错误10070(「终端类型必须小于或等于7」,鸿蒙的device_type为 8),需等后端放开后才能入会。 - 其余限制同 SRTC 1.1.0。
升级步骤:替换
libs/ 下两个 HAR,并把 oh-package.json5 里 smeeting 与 srtc 的版本号都改为 1.1.0,见集成方式。编译层面需要留意:用到 McuRecordDetail.vodKey 等四个字段的地方要按可选类型处理(建议直接换成新字段);对 McuTaskStatus / McuTaskType 做 switch 的代码请补上 unknown 或 default 分支。[1.0.0] - 2026.09.07
新增
- 本端统计:
SMeetingEngine.getStats()返回RtcStatsSnapshot,包含实际编码分辨率与帧率、编码器降级原因、发送侧丢包与往返时延。与onQualityReport互补——后者由 SFU 下发、只有 SeaStart 引擎有,而本端统计两条引擎路径都能出。 - 媒体面连接状态:新增回调
SMeetingDelegate.onMediaStateChange,参数类型MediaConnectionState。它反映音视频通路的连通性,与信令面的连接 / 重连事件是两条独立的线。 - 聊天消息类型:
ChatMessageInfo与chatMessageInfoFromJson。 - 会控事件:主持人请求开启共享
AdminRequestOpenShareEventData。 - 摄像头变焦:
cameraZoomRange()与变焦设置接口。 - 长时任务:支持通话切后台后继续采集与推流。
修复
- 长时任务在部分场景下启动失败(
9800005 bgMode is invalid):ability 需额外声明"backgroundModes": ["audioRecording"]。
变更
- 依赖的 SRTC 升级至 1.0.0(
peerDependencies)。升级 SMeeting 时必须同步替换 SRTC 的 HAR。
不在会中时相关接口走降级返回而不抛错:
getStats() 返回空快照,cameraZoomRange() 返回 unsupported。[0.0.1] - 2026.09.07
首个版本
- 账号与会议管理:
login/logout;createRoom/updateRoom/cancelRoom/detailRoom;attendeeRoom(即将开始)与attendedRoom(历史会议)分页查询;支持预约会议(planTime/planDur/conferee)。 - 入会:
enterRoom支持按meetingId或roomNo入会,可带入会密码;exitRoom离会。 - 媒体一体化接口:
requestOpenMic/requestOpenCamera/requestShare内部完成”后端授权 → 建轨道 → 采集 → 发布”,无需自行拼装;配套closeMic/closeCamera/stopShare、setMicMuted、switchCamera。 - 订阅:
subscribeRemoteVideoTrack/subscribeRemoteAudioTrack按成员订阅,支持 MCU 合流轨道(subscribeRemoteVideoMcu);toggleRemoteAudioMute切换本地播放而不退订。 - 会控:全体静音 / 禁摄像头 / 禁共享 / 禁聊天 / 禁截图 / 水印 / 锁定会议、成员改名与角色变更、移交主持人、请求开麦开摄像头、移出会议、举手确认、呼叫成员与短信提醒。
- 等候室:开关等候室、查询等候成员、移入移出。
- 子会议:创建 / 改名 / 分配成员 / 删除 / 启停 / 成员跨子会议移动。
- 录制与资源:MCU 录制任务启停与详情、资源列表与创建、预签名上传下载、会议背景与附件。
- 签到:发起 / 结束 / 签到 / 统计 / 明细。
- 聊天:
sendRoomChatMessage支持群发与私聊。 - 事件:
SMeetingDelegate覆盖连接状态、成员进出、成员与房间状态变化、聊天、会控指令、等候室、子会议、签到、点名、音频路由与设备变化。 - 音频路由:扬声器 / 听筒的持久设置与通话中临时切换;外接设备由系统接管,SDK 只上报。
仅支持 arm64-v8a。升级需要手动替换 HAR 文件。 ohpm 没有按 Git tag 解析版本的机制,SDK 通过
file: 路径引用具体的 HAR 文件名,升级时要同步修改 libs/ 下的文件与 oh-package.json5 中的版本号。两个 SDK 独立编号,当前 SMeeting 0.0.1 依赖 SRTC 0.0.1。