跳转到主要内容
SMeeting HarmonyOS SDK 是一套 HAR(静态共享包)形态的原生会议 SDK,对外模块名为 smeeting,当前支持:
  • HarmonyOS 5.0.0(API 12)及以上
  • DevEco Studio 5.0 及以上
  • ArkTS(Stage 模型)
  • 仅 arm64-v8a
SMeeting 依赖 SRTC,两个 HAR 都必须引入。HarmonyOS 的 HAR 没有依赖传递性,SMeeting 把 srtc 声明为 peerDependencies,需要由你的工程提供。只声明 smeeting 会在 ohpm install 阶段报缺少 srtc。
视频编码只有硬编,没有软编兜底,所以视频功能必须在真机上验证。视频预设统一使用 H264,底层只走设备硬件编解码器。模拟器上建不出编码器;而在缺少 H264 硬编能力的真机上,SDK 不报错而是静默退回 VP8,表现为”本机能看到画面,但和其它端互通不上”。自测时请确认实际协商到的编码格式。

获取 HAR

两个包都从制品仓下载:
放进模块的 libs/ 目录,去掉文件名里的 -harmony:
两个 SDK 独立编号,版本号不需要对齐。当前 SMeeting 1.4.0 依赖 SRTC 1.2.0,不能搭配 SRTC 1.1.x 及以前(用到了 SRTC 1.2.0 才有的收流状态事件与频道级合成流订阅,HAR 里也以 peerDependencies 钉住 srtc@1.2.0)。升级 SMeeting 时请按本页说明确认它对应的 SRTC 版本。SMeeting 1.4.0 的 HAR 校验值(sha256):e290753171e2e5834dbb933ab27e30d9e5b9800381f7fe5a97e57aa97d3288c1,可用 shasum -a 256 smeeting-harmony-1.4.0.har 核对。

声明依赖

在模块的 oh-package.json5 中同时声明两个包:
再在工程级(工程根目录)的 oh-package.json5 里声明一次 srtc,路径相对工程根:
工程级这一行不能省。 ohpm 不会把 peerDependencies 链接到 smeeting 自己的依赖目录下,只在模块级声明 srtc 时,smeeting 声明文件里引用的 SRTC 类型全部解析不到:meeting.cameraTrack 等返回值变成 any,ArkTS 编译直接报错(Use explicit types instead of "any"),从 smeeting 导入的 SRTCError 也无法用 instanceof 收窄。SMeeting 1.3.0 及以前同样需要这一行。
然后执行:
底层依赖的 @ohos/webrtc 与 @ohos/mqtt 会由 ohpm 从 OpenHarmony 三方库中心仓 自动安装。
HarmonyOS 的 ohpm 没有按 Git tag 解析版本的机制,SDK 通过 file: 路径直接引用具体的 HAR 文件。因此升级需要手动替换 libs/ 下的文件并同步修改上面的版本号。

权限配置

在模块的 src/main/module.json5 中声明:
摄像头与麦克风是 user_grant 权限,还必须在运行时主动申请:

初始化

在 UIAbility 的 onCreate 中把 Context 交给底层的 SRTC:
这一步不要跳过。 摄像头档位查询需要 Context,而 HAR 形态的库拿不到宿主的 Context。不调用也能跑通,但摄像头分辨率会退化为”由底层自行吸附档位”,你设定的预设不再生效。

导入 SDK


最小接入检查清单

  • libs/ 下已放入两个 HAR,模块级 oh-package.json5 已同时声明 smeeting 与 srtc,工程级 oh-package.json5 也已声明 srtc
  • ohpm install 已执行且无报错
  • module.json5 已声明 INTERNET / CAMERA / MICROPHONE
  • 运行时已申请摄像头与麦克风权限
  • UIAbility.onCreate 中已调用 SRTC.init(this.context)
  • 业务后端已能签发会议 Token
  • 手上有一台 arm64-v8a 真机
完成以上步骤后,可以继续阅读 快速开始。