即时通话与会议
即时通话与会议由独立的 imsdk-rtc Android library 提供。它负责通话/会议的信令、媒体引擎、会话状态和相关生命周期;核心 imsdk 只负责 IM 连接、普通消息和通话/会议控制消息的基础收发。
集成前准备
开发者需要根据应用的音视频需求准备相机、麦克风、通知和前台服务权限,并确认宿主可以使用对应的媒体引擎和网络环境。音视频权限由宿主在实际使用前申请,RTC 模块不会替宿主完成业务权限弹窗。
Gradle 依赖
先引入核心 IM,再按需引入 RTC;所有模块使用同一 SDK 版本:
kotlin
dependencies {
implementation("com.beework.im:chat:<version>")
implementation("com.beework.im:imsdk-rtc:<version>")
}imsdk-rtc 会传递核心 chat 和 RTC 所需的运行时依赖。宿主不应把 RTC 依赖手动加入核心 imsdk,也不应直接调用内部媒体引擎类。
初始化
先按 初始化、登录与连接 完成核心 IM 初始化和登录,然后在 Application 或其他稳定生命周期中初始化 RTC:
kotlin
import com.beework.im.rtc.BimRtcConfig
import com.beework.im.rtc.BimRtcManager
val rtc = BimRtcManager.getInstance()
rtc.init(
context = applicationContext,
config = BimRtcConfig(),
)BimRtcConfig 可配置 callback executor、来电/去电 UI 委托和铃声 URI。RTC 释放时调用:
kotlin
rtc.release()初始化或释放 RTC 不会代替核心 IM 的登录和登出。账号切换、登出或核心 SDK 释放后,RTC 会结束旧账号的活动会话并停止旧事件处理。
基础能力
kotlin
val callService = rtc.callService
val meetingService = rtc.meetingService通话通过 BimCallListener 观察来电、会话快照和错误;会议通过 BimMeetingListener 观察会议邀请、状态、会话快照和错误。Core 的 BimCallMessage / BimMeetingMessage 只表示聊天历史中的控制记录,不等同于已经建立的媒体会话。
RTC 模块可以使用默认的来电页面,也可以通过 BimRtcUiDelegate 由宿主接管业务 UI。宿主负责最终的权限交互、页面样式和业务导航。
