本文将介绍如何定制 TUICallKit 的用户界面,我们提供了两个方案供您选择:界面微调方案和自实现 UI 方案。
方案一:界面微调方案
替换图标
您可以直接替换 
res\\drawable-xxhdpi 文件夹下的图标,以确保整个 App 中的图标色调风格保持一致,请在替换时保持图标文件的名字不变。

替换铃声
您可以替换 
res\\raw 文件夹下的三个音频文件来达到替换铃声的目的:| 文件名 | 用途 | 
| phone_dialing.mp3 | 发起呼叫时的声音 | 
| phone_hangup.mp3 | 被挂断的声音 | 
| phone_ringing.mp3 | 接到呼叫时的声音 | 
替换文案
您可以通过修改 values-zh 和 values-en 中的 
strings.xml 文件来修改视频通话界面中的字符串内容。方案二:自实现 UI 方案
TUICallKit 的整个通话功能是基于 TUICallEngine 这个无 UI 组件实现的,您可以删掉 tuicallkit 文件夹,完全基于 TUICallEngine 实现一套自己的 UI 界面。
TUICallEngine
TUICallEngine 是整个通话组件的底层接口,主要提供了1对1音视频通话和群组内通话的发起、接听、拒绝、结束以及设备操作等关键接口。
| API | 描述 | 
| 创建 TUICallEngine 实例(单例模式)。 | |
| 销毁 TUICallEngine 实例(单例模式)。 | |
| 完成音视频通话基础能力的鉴权。 | |
| 增加事件回调。 | |
| 移除回调接口。 | |
| 发起单人或多人通话。 | |
| 接听通话。 | |
| 拒绝通话。 | |
| 结束通话。 | |
| 忽略通话。 | |
| 在通话中,邀请其他人加入。 | |
| 主动加入通话。 | |
| 切换通话媒体类型,例如视频通话切音频通话。 | |
| 开始订阅远端用户视频流。 | |
| 停止订阅远端用户视频流。 | |
| 开启摄像头。 | |
| 关闭摄像头。 | |
| 切换前后摄像头。 | |
| 打开麦克风。 | |
| 关闭麦克风。 | |
| 选择音频播放设备(听筒/扬声器)。 | |
| 设置用户的昵称、头像。 | |
TUICallObserver
TUICallObserver 是 TUICallEngine 对应的回调事件类,您可以通过此回调,来监听自己感兴趣的回调事件。
| API | 描述 | 
| 通话过程中错误回调。 | |
| 通话请求的回调。 | |
| 通话接通的回调。 | |
| 通话结束的回调。 | |
| 通话未接通的回调。 | |
| xxxx 用户拒绝通话的回调。 | |
| xxxx 用户不响应的回调。 | |
| xxxx 用户忙线的回调。 | |
| xxxx 用户被追加邀请加入通话时的回调。 | |
| xxxx 用户加入通话的回调。 | |
| xxxx 用户离开通话的回调。 | |
| xxxx 用户是否有视频流的回调。 | |
| xxxx 用户是否有音频流的回调。 | |
| 所有用户音量大小的反馈回调。 | |
| 所有用户网络质量的反馈回调。 | 
关键类型定义
| API | 描述 | 
| 通话的媒体类型,枚举类型:视频通话、语音通话。 | |
| 通话的角色,枚举类型:主叫、被叫。 | |
| 通话的状态,枚举类型:空闲、待接听、接听中。 | |
| 音视频房间 ID,支持数字、字符串类型。 | |
| 摄像头参数,枚举类型:前置摄像头、后置摄像头。 | |
| 声音的播放设备,枚举类型:扬声器、听筒。 | |
| 当前的网络质量信息。 |