简介
CallCoreView 是通话界面的主要容器,提供以下核心能力:多布局切换: 支持单人悬浮、多人宫格、画中画三种布局模式切换。
呼叫等待交互: 支持自定义呼叫接通前的等待动画。
状态可视化: 支持自定义不同音量等级和网络质量状态的图标。
用户个性化: 支持通过 User ID 映射设置参与者头像。
说明:
该视图组件需要配合 CallStore 使用,以正确展示通话画面并接收通话状态更新。
功能特性
多布局切换:支持单人悬浮、多人宫格、画中画三种布局模式切换。
呼叫等待交互:支持自定义呼叫接通前的等待动画。
状态可视化:支持自定义不同音量等级和网络质量状态的图标。
用户个性化:支持通过 User ID 映射设置参与者头像。
API 列表
函数名 | 描述 |
默认占位头像。 | |
呼叫等待动画。 | |
音量状态图标集合。 | |
网络信号图标集合。 | |
参与者头像集合。 | |
多布局切换。 | |
配置等待动画。 | |
配置音量图标。 | |
配置网络图标。 | |
配置参与者头像。 |
静态属性
defaultAvatarImage
默认占位头像。
waitingAnimationImage
呼叫等待动画。
volumeImages
音量状态图标集合。
networkQualityImages
网络信号图标集合。
participantAvatars
参与者头像集合。
配置方法
setLayoutTemplate
切换通话界面布局模式。
fun setLayoutTemplate(template: CallLayoutTemplate) {setLayoutTemplateInternal(template)}
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
template | 目标布局模板。 |
setWaitingAnimation
配置呼叫等待动画。
fun setWaitingAnimation(path: String) {setWaitingAnimationInternal(path)}
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
path | String | 动画文件的资源路径。 |
setVolumeLevelIcons
自定义音量等级图标。
fun setVolumeLevelIcons(icons: Map<VolumeLevel, String>) {setVolumeLevelIconsInternal(icons)}
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
icons | 音量等级与图标路径的映射关系。 |
setNetworkQualityIcons
自定义网络质量图标。
fun setNetworkQualityIcons(icons: Map<NetworkQuality, String>) {setNetworkQualityIconsInternal(icons)}
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
icons | Map<NetworkQuality, String> | 网络质量状态与图标路径的映射关系。 |
setParticipantAvatars
设置参与者头像。
fun setParticipantAvatars(avatars: Map<String, String>) {setParticipantAvatarsInternal(avatars)}
版本信息
从3.5版本开始支持。
参数说明
参数名 | 类型 | 描述 |
avatars | Map<String, String> | 用户 ID 与头像资源路径的映射关系。 |
数据结构
CallLayoutTemplate
通话布局模式枚举,用于定义通话画面的展示形态。
枚举值 | 说明 |
float | 单人通话布局。 |
grid | 多人通话布局。 |
pip | 画中画布局。 |
VolumeLevel
音量等级枚举,用于标识参与者当前的音量强度。
枚举值 | 值 | 说明 |
Mute | 0 | 静音。 |
Low | 1 | 低音量。 |
Medium | 2 | 中音量。 |
High | 3 | 高音量。 |
Peak | 4 | 峰值音量。 |
使用示例
import io.trtc.tuikit.atomicxcore.api.view.*// 创建通话视图val callCoreView = CallCoreView(context)addView(callCoreView)// 设置布局模式callCoreView.setLayoutTemplate(CallLayoutTemplate.GRID)// 设置等待动画callCoreView.setWaitingAnimation("waiting_animation.json")// 设置音量图标callCoreView.setVolumeLevelIcons(mapOf(VolumeLevel.MUTE to "volume_mute",VolumeLevel.LOW to "volume_low",VolumeLevel.MEDIUM to "volume_medium",VolumeLevel.HIGH to "volume_high",VolumeLevel.PEAK to "volume_peak"))// 设置网络质量图标callCoreView.setNetworkQualityIcons(mapOf(NetworkQuality.UNKNOWN to "network_unknown",NetworkQuality.EXCELLENT to "network_excellent",NetworkQuality.GOOD to "network_good",NetworkQuality.POOR to "network_poor",NetworkQuality.BAD to "network_bad",NetworkQuality.VERY_BAD to "network_very_bad",NetworkQuality.DOWN to "network_down"))// 设置参与者头像callCoreView.setParticipantAvatars(mapOf("user_123" to "avatar_user_123","user_456" to "avatar_user_456"))