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