Skip to main content

前提条件

  • 已完成 SDK 集成
  • 业务后端可以签发登录 SDK 用的 meeting token
  • 应用已经申请摄像头和麦克风权限
meeting token 由你们的业务后端签发后下发给客户端,SDK 只负责使用它,不要在客户端自行拼装凭据。

最小可运行示例

下面的示例覆盖最核心链路:登录 SDK、创建即时会议、进入会议、开关本地音视频、渲染本端与远端画面、退出会议。

接入流程说明

1. 创建 SMeeting

SMeeting 是整个 SDK 的唯一入口,负责登录、会议管理、进出会议、媒体控制、主持人操作和事件分发。同一个 App 内只应创建一个实例并全局持有,多实例会造成会议状态与媒体设备互相抢占。

2. 登录并注册事件

delegates 是弱引用多播,支持多个观察者同时监听。SMeetingDelegate 的所有方法都有默认空实现,你只实现关心的事件即可。对象释放或登出前记得调用 meeting.delegates.remove(delegate:)

3. 创建会议还是直接进入会议

会前与会中是两个阶段:
  • createRoom(_:) 创建会议,返回 (roomNo, meetingId)
  • enterRoom(_:) 进入会议,MeetingEnterReqmeetingIdroomNo 二选一
如果会议已经由其他人(或你们的后台)创建好,跳过 createRoom,直接用房间号进入即可。

4. 打开本地音视频

方法名带 request 是因为它同时包含「向会议申请开启」和「本地起流并发布」两步 —— 当房间被主持人设为全体静音 / 全体禁画且禁止自我解除时,非主持人调用会抛出 SMeetingError.unauthorized SwiftUI 场景 requestOpenCamera 不需要传 view,把 meeting.cameraTrack 交给 SRTCVideoView(track:) 渲染即可。

5. 渲染远端画面

远端画面用 SMeetingRemoteVideoView,它会在视图出现时按 uid + TrackDesc 订阅、视图消失时退订,你不需要手动管理订阅生命周期。 需要在 UIKit / AppKit 中渲染,或需要自己控制订阅时机,见 视频渲染

6. 退出

  • exitRoom() 退出当前会议,不会退出登录
  • logout() 退出登录,如果仍在会议中会先自动退会

下一步