Skip to main content
本文用最小代码跑通一次会议:登录 → 创建或加入会议 → 开麦 → 开摄像头 → 离会。 开始之前请先完成 集成方式 中的两个 HAR 引入、权限配置与 SRTC.init

调用序列总览

requestOpenMic / requestOpenCamera一体化接口:内部完成”向会议后端申请授权 → 创建本地轨道 → 启动采集 → 发布到频道”。你不需要像直接使用 SRTC 那样自己拼这四步。

第一步:创建引擎并登录

Token 由你的业务后端签发,SDK 不负责发号。

第二步:监听会议事件

所有回调的第一个参数都是引擎实例,第二个参数是该事件的数据对象(onUserEnter 例外,第二个参数直接是 MeetingUserInfo)。数据对象的字段见各事件的类型定义。
delegates 是强引用,必须成对 add / removeArkTS 没有弱引用,也没有 deinit。注册后不摘除会导致监听者永不回收,而且离开页面后仍然收到回调。通常在组件的 aboutToAppear / aboutToDisappear 里配对处理。

第三步:创建或加入会议

创建即时会议

用房间号加入

meetingIdroomNo 二选一,nickname 必填。

第四步:开麦与开摄像头

主持人开启全体静音后,requestOpenMic 会被后端拒绝。这类限制通过 onRoomMicStateChange 事件下发,UI 上应当据此禁用按钮,而不是等调用失败。

第五步:渲染画面

渲染组件来自 srtc

本地预览

本地摄像头轨道也可以直接从引擎上取:meeting.cameraTrack / meeting.screenTrack / meeting.micTrack

订阅并渲染远端

多路画面用 ForEach,key 带上成员 uid:
track 是普通成员变量,不能声明成 @PropArkTS 的 @Prop 对复杂类型做深拷贝,且拷贝过程中会丢失类型 —— Track 拷过来会变成没有方法的普通对象,结果是画面黑屏、事件也收不到。轨道要按引用传入,换轨道靠组件重建。

第六步:屏幕共享

requestShare 会弹出系统授权窗,用户同意之后才开始出帧。

第七步:离会与清理

dispose() 必须调用 —— 它会摘掉挂在全局单例上的监听。ArkTS 没有析构函数,漏掉会导致页面永不回收、摄像头指示灯一直亮。

自测建议

  • 发布与订阅必须在真机上验证:视频预设都用 H264,而 H264 只有硬编、没有软编兜底,模拟器上编码器建不出来。
  • 不要以”看到画面”作为通过标准:缺少 H264 硬编能力的设备会静默退回 VP8,表现为和其它端互通不上。

下一步