外观
音视频接入
Call SDK 在 IM 连接之上增加通话信令、通话状态、媒体房间与系统通话桥;Call UIKit 提供标准通话页面、小窗与成员选择。可以使用默认界面,也可以保留自定义 UI。
接入前提
- IM 用户已经能完成登录、消息与群权限联调。
- 部署并配置音视频媒体服务,客户端能访问相应网络入口。
- 服务端可以签发短效媒体授权,管理凭据仅保留在服务端。
- Android/iOS 应用完成实际所需的权限与推送配置。
密信 IM 开发版 5.0 的 Flutter 通话包与 IM 组件配套交付,包版本及媒体依赖见授权交付清单。群通话最多 9 人,包含当前用户。
初始化顺序
- 取得
MixinImSdk.instance,使用MixinImConfig配置 IM 的 REST、WebSocket、存储命名空间、票据与续签策略,等待 IMinitialize完成。 - 使用
MixinImCallSdk.create()创建通话实例,再调用其initialize,传入同一个 IM 实例和配套通话配置。媒体连接地址和配置参数按授权接入资料填写。 - 完成 Call 初始化后,使用宿主后端取得的
session调用 IMconnect(session),建立当前用户的通信会话。 - 将已初始化通话实例的
controller交给 Call UIKit,或由自定义界面订阅和操作通话状态。
初始化顺序为 IM 初始化 → Call 初始化 → IM 连接。按 IM Session 配置续期,在同一账号会话层持有 IM 与 Call 实例,后续呼叫复用已初始化的实例。
接入默认界面
dart
MixinImCallUIKitHost(
controller: calls.controller,
navigatorKey: navigatorKey,
child: yourPage,
)该片段来自 Call UIKit 公共入口;需导入 package:mixinim_call_uikit/mixinim_call_uikit.dart。calls 是已初始化实例,navigatorKey 与 yourPage 由宿主应用提供。
Host 负责标准通话页与最小化恢复,宿主处理业务导航、成员选择权限和错误提示。通话页面使用 SDK 统一管理的信令连接与媒体房间。
IM 与媒体的分工
IM 负责邀请、拒接、忙线及离线通知等信令;音视频媒体服务负责媒体房间与在线参与者。部署时分别配置通信入口与媒体网络,客户端通过 Call SDK 完成呼叫、接听和结束。