本页记录 Windows SMeeting SDK 各版本的主要变更。可通过 SMeetingEngine_Version 获取当前 SDK 版本。
1.0.0-alpha.7 - 2026-09-29
添加SMeeting_CC 接口正式可用:SMeeting_C.cpp/SMeetingEngineGlobal.cpp重新编入SMeeting.vcxproj,SMeeting.dll现在真正导出SMeetingEngine_*系列 C 函数 (x86 导出符号由 3 个增至 139 个)。在此之前该 wrapper 被排除在工程外, 包里的 dll 并不包含这些符号。
SMeeting_C内部实现移植到引擎级 / 会议级拆分后的接口,不再沿用拆分前的单会议写法, 与1.0.0-alpha.5起的ISMeetingEngine/ISMeetingChannel结构保持一致
- C++:无。
SMeeting.h/SMeeting_def.h没有任何签名改动,ISMeetingEngine/ISMeetingChannel的 vtable 未变,不存在 ABI 破坏。 - C:
SMeeting_C.h的函数声明无改动(本次只更新了文件顶部注释)。但因 C wrapper 这次才真正编入 dll,SMeeting.lib会新增 C 导出符号,使用 C 接口的工程需重新链接。 - 包内容不变:
meeting_dll/include/仍只有SMeeting.h/SMeeting_def.h,SMeeting_C.h不在包内,使用 C 接口仍需另行索取头文件。
1.0.0-alpha.6 - 2026-09-24
添加-
新增 x64(64 位)包,Windows 交付改为 x86 + x64 双包:
meeting-win-sdk-2.0.zip(x86,32 位)—— 包名与之前完全一致meeting-win-sdk-x64-2.0.zip(x64,64 位)—— 新增,包名是在版本号前面多一段-x64
meeting_dll/),但SMeeting.dll/SMeeting.lib的位数不同,不能混用、也不要解压到同一个目录,请按工程的目标平台选对应的包。 下载地址见集成。 -
依赖库按架构拆分为
lib/<库>/lib/win32与lib/<库>/lib/win64两套
- x64 工程配置修正:输出类型从
Application改为DynamicLibrary,补上 x64 自己的包含目录 与库目录(指向lib/*/lib/win64),产物输出到Release_x64 - 升级底层 curl:libcurl 换用新版头文件与导入库,并新增 zlib 依赖(
zlib1.dll) - jsoncpp 导入库由
jsoncpp_static.lib改名为jsoncpp.lib,并按 win32 / win64 分目录 - 移除不再使用的 pthread 依赖;底层音视频库同步刷新,
bin不再包含DenModule.dll、rtp.dll、zlib.dll,改用zlib1.dll - 统一源码与头文件编码为 UTF-8 with BOM,并新增
.editorconfig约束 —— 修复SMeeting_def.h等文件中文注释在 GBK 环境下的 C4819 警告与乱码隐患
- 修正 4 处 jsoncpp 数组遍历:索引类型由
size_t改为Json::Value::ArrayIndex, 避免 64 位编译下的类型不匹配
SMeeting.h / SMeeting_def.h / SMeeting_C.h 本次只有编码变化,没有任何签名改动,
vtable 未变,不存在 ABI 破坏。按快速开始的通用约定,
升级 SDK 后仍建议重新编译业务工程。
1.0.0-alpha.5 - 2026-08-21
添加- 新增
ISMeetingChannel会议对象,一个会议对应一个 channel。 - 新增
ISMeetingChannelEvent会议级事件回调。 - 新增
ISMeetingChannelSetting会议级配置对象。 - 内部新增
SRTCChannelControl封装每个SRTC::IRTCChannel及其媒体对象。
ISMeetingEngine缩减为引擎级接口:登录、会议管理 HTTP 接口、设备枚举、IM、资源盘、channel 生命周期。- 入会改为两步:
createChannel/createChannelByMeetingId只建对象,ISMeetingChannel::enter()才真正入会。 ISMeetingSetting只保留sdk_log_path/enable_stream_log;其余设置项移到ISMeetingChannelSetting。- 等候室自动重新入会时保持
channelId不变,leaveChannel仍按原 key 回收。
adminDestroyRoom现在会正确调用leaveChannel离开 rtc 频道。- 登录前调用设备枚举时按需惰性初始化 rtc 引擎。
- 删除
ISMeetingEngine::enterRoom、enterRoomByMeetingId、exitRoom;改用createChannel+ISMeetingChannel::enter()+leaveChannel。 - 删除
ISMeetingEngine::exitWaitRoom(roomno, meeting_id, back);改用ISMeetingChannel::exitWaitRoom(back)。 - 以下方法从
ISMeetingEngine移到ISMeetingChannel:admin*、updateName、聊天/举手、getMe/getRoom/getMembers/getMember/getOpt、getLocalMic/getLocalCamera/getLocalScreen/getRemoteVideo/getRemoteAudio/getMcuVideo、getCustomVideo/getCustomAudio/setCustomRecvBack、分组讨论*SubMeeting、mcu*、签到signin*、getLocalRecord。 getLocalRecord(mid, &rec)改为getLocalRecord(&rec),mid 使用 channel 自身会议 ID。- 会议级回调全部移除
roomno首参;onAdminConfirmHandup首参改为uid。 onDeviceStatusChange/onShareTargetNotFind从引擎回调移到ISMeetingChannelEvent。- 纯虚接口签名变动会改变 vtable,只替换 dll 不重编工程会崩溃。