CallStore

abstract class CallStore

音视频通话管理相关接口,管理音视频通话的发起、接听、拒绝、挂断、群组通话的加入与邀请、通话记录管理等操作。

概览

CallStore 管理音视频通话相关的所有操作, 包括发起、接听、拒绝、挂断、群组通话管理和通话记录管理等功能。 音视频通话功能通过 CallStore 实现用户之间的实时音视频互动。CallStore 提供了一套全面的 API 来管理整个通话生命周期。

主要功能

  • 发起音视频通话:支持向单个或多个用户发起音频通话或视频通话,可配置超时时间、自定义数据等参数

  • 接听/拒绝音视频通话:收到来电邀请时,可选择接听或拒绝

  • 挂断音视频通话:结束当前正在进行的音视频通话

  • 群组通话管理:支持加入已存在的群组通话,或在通话中邀请其他用户加入

  • 通话记录管理:查询最近的通话记录(支持分页),删除指定的通话记录

  • 事件驱动架构:提供通话开始、收到邀请、通话结束等事件监听

  • 状态订阅:实时订阅当前通话状态,包括参与者列表、音量信息、网络质量等

Important: 请在 SDK 初始化成功后,通过 CallStore.shared 单例获取 CallStore 实例,不要尝试直接初始化,否则将无法接收通话状态更新。

Tip: 通话状态更新通过 callState 发布者传递。订阅它以接收通话数据的实时更新。

通话操作概览

下表展示了主要的通话操作

功能方法说明
发起通话calls向指定用户发起音频或视频通话
接听通话accept接听来电
拒绝通话reject拒绝来电
挂断通话hangup挂断当前通话
加入通话join主动加入群组通话
邀请用户invite邀请其他用户加入当前通话

通话记录管理

功能方法说明
查询记录queryRecentCalls查询最近通话记录(支持分页)
删除记录deleteRecentCalls删除指定的通话记录

使用示例

import io.trtc.tuikit.atomicxcore.api.call.*

// 发起视频通话
CallStore.shared.calls(
participantIds = listOf("mike"),
callMediaType = CallMediaType.VIDEO,
params = null
) { code, message ->
}

Warning: 请确保在通话结束后正确处理 UI 状态,避免出现界面异常。

Topics

获取实例

观察状态和事件

通话操作

通话记录

See Also

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
object Companion

CallStore 单例实例

Properties

Link copied to clipboard
abstract val observerState: CallState

当前通话状态,包含活跃通话、参与者列表、音量信息、网络质量等

Functions

Link copied to clipboard
abstract fun accept(completion: CompletionHandler?)

接听通话。收到来电邀请时调用此方法接听通话。

Link copied to clipboard
abstract fun addListener(listener: CallListener)

添加通话事件回调监听器

Link copied to clipboard
abstract fun calls(userIdList: List<String>, mediaType: CallMediaType, params: CallParams?, completion: CompletionHandler?)

向指定用户发起音频或视频通话,支持单人通话和多人通话。

Link copied to clipboard
abstract fun deleteRecentCalls(callIdList: List<String>, completion: CompletionHandler?)

删除指定的通话记录。

Link copied to clipboard
abstract fun hangup(completion: CompletionHandler?)

挂断并结束当前正在进行的通话。

Link copied to clipboard
abstract fun invite(participantIds: List<String>, params: CallParams?, completion: CompletionHandler?)

在通话进行中邀请其他用户加入。

Link copied to clipboard
abstract fun join(callId: String, completion: CompletionHandler?)

使用特定的 Call ID 加入一个正在进行中的群组通话。

Link copied to clipboard
abstract fun queryRecentCalls(cursor: String, count: Int, completion: CompletionHandler?)

查询最近的通话记录,支持分页查询。首次查询时 cursor 传空字符串,后续查询使用返回的 cursor 值进行分页,查询结果通过 state.recentCalls 获取。

Link copied to clipboard
abstract fun reject(completion: CompletionHandler?)

拒绝通话。收到来电邀请时调用此方法拒绝通话。

Link copied to clipboard
abstract fun removeListener(listener: CallListener)

移除通话事件回调监听器