Skip to main content
会议 SDK 的唯一入口。会控、媒体、等候室、子会议、录制、签到等方法也都挂在它上面, 按主题拆到了几个页面:
  • 本页:登录、会议 CRUD、入会离会、查询
  • 媒体控制:开麦、摄像头、共享、订阅
  • 会控接口admin*、等候室、子会议、录制、签到
  • 设备与路由:设备枚举与音频路由

构造与释放

dispose() 漏掉会导致页面永不回收、摄像头指示灯一直亮 —— ArkTS 没有析构函数。 配套还要把注册过的 delegate remove 掉。

登录

Token 由业务后端签发,SDK 不负责发号。 抛出tokenInvalid208005)/ tokenExpired208002 未登录就调其它接口会抛 notLoggedIn208001)。

会议管理

这一组不要求在会中,登录后即可调用。

createRoom(req)

创建会议。返回 [roomNo, meetingId] —— 两个元素的数组
MeetingCreateReq 的常用字段(完整清单见类型定义): 预约会议就是在 req 里带上 planTime / planDur

updateRoom / cancelRoom

detailRoom(meetingId?, roomNo?)

查会议详情。两个参数二选一。

会议列表

分页参数用 PageParamdefaultPageParam() 给一份默认值)。

入会与离会

enterRoom(req)

抛出alreadyInMeeting208006)/ apiError
入会失败有两条通路,必须都处理。enterRoom() 抛错只覆盖”请求阶段就失败”。请求成功但被服务端拒绝 (会议已锁定、被移入等候室等)走的是事件:
只写 try/catch 会漏掉后一种。

exitRoom()

离会。建议先关掉媒体再离会:

会中查询

这一组要求在会中,否则抛 notInMeeting208003)。
getRoomInfo() 返回的 RoomInfo 是判断”按钮能不能点”的依据 —— 里面有 micDisabled / selfUnmuteMicDisabled / locked / shareDisabled 等全部开关。进会后先读一次它初始化 UI,之后靠 onRoom*Change 事件增量更新。

聊天与自定义消息

收消息走 onChatMessage / onCustomMessage 事件。

统计

采集一次本端 WebRTC 统计:实际编码分辨率与帧率、编码器降级原因、发送侧丢包、RTT 与可用上行带宽。做会中「网络状况」面板用它。 字段说明见 SRTC 类型定义 · RtcStatsSnapshot onQualityReport 的分工:后者由 SFU 通过控制面下发,只有 SeaStart 引擎有,是服务端视角;getStats() 是本端观察,两条引擎都有,且能回答服务端答不了的问题(我实际编码出来是多少分辨率、编码器是被 CPU 还是被带宽限住了)。
首次调用的码率恒为 0 —— 码率由两次采集的字节差算出。做面板要周期性调用,1 秒一次比较合适。
与「会中查询」那一组不同,不在会中时 getStats() 返回空快照而不抛错 —— 诊断能力不该让业务流程失败。

其它

查询”应到未到”的成员,用于会议开始后提醒。

相关阅读