Skip to content
v1
文档/Android SDK/开发指南

即时通话与会议

即时通话与会议由独立的 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。宿主负责最终的权限交互、页面样式和业务导航。