升级说明
TUICallKit 是腾讯云推出一款新的音视频通话 UI 组件,是 TUICalling 的升级版本,支持群组通话、AI降噪等更多功能特性、支持全平台间互通呼叫,功能更加稳定,欢迎您使用新的 TUICallKit 组件,在升级前您需要了解到:
TUICalling 和 TUICallKit 支持相互呼叫,升级前后,请保持 SDKAppID 不变,否则会影响相互通信;
TUICallKit 需要搭配 IM 音视频通话能力套餐,可以单击 IM 控制台,进入对应 SDKAppID 应用的 基本配置 页面,并在页面的右下角找到 含 UI 低代码场景方案 功能区,选择音视频通话,然后单击免费体验 即可开通 TUICallKit 的7 天免费试用服务。如果需要正式应用上线,可以单击 购买正式版 即可进入购买页面。
注意
升级步骤
TUICallKit 在设计之初就兼顾了 TUICalling 客户的升级诉求,仅需要简单两步就可以升级完成,预计花费 20 分钟;
下载&替换 TUICallKit
1. 在 Github 中克隆/下载代码,然后拷贝 Android 目录下的 tuicallkit 子目录到您当前工程中的 app 同级目录中,同时删除 tuicalling 目录,结果如下图:
2. 在工程根目录下找到
setting.gradle
文件,将include ':tuicalling'
替换成include ':tuicallkit'
3. 在 app 目录下找到
build.gradle
文件,将api project(':tuicalling')
替换成api project(':tuicallkit')
说明
如果您之前是配合 TUIChat、TUIContact 等IM 组件一起使用的话,执行完这个步骤即可正常使用 TUICallKit,TUICallKit 组件内部已经处理好兼容逻辑。
修改 API 使用
在完成上述步骤后,您的工程就无法正常编译了,需要将 TUICalling API 替换成新的 TUICallKit API,可以参照如下 API 对比信息,搜索替换即可。
API 含义 | TUICalling(包名:com.tencent.liteav.trtccalling) | TUICallKit(包名:com.tencent.qcloud.tuikit.tuicallkit) | 备注 |
创建 TUICallKit 实例 | TUICallingImpl.sharedInstance | TUICallKit.createInstance | 替换引用、名称 |
设置用户的昵称 | TUICalling.setUserNickname | TUICallKit.setSelfInfo | 设置头像、昵称的接口整合 setSelfInfo 接口 |
设置用户的头像 | TUICalling.setUserAvatar | TUICallKit.setSelfInfo | 设置头像、昵称的接口整合到 setSelfInfo 接口 |
发起 1v1 通话 | TUICalling.call | TUICallKit.call | 替换引用、名称 |
发起群组通话 | / | TUICallKit.groupCall | / |
主动加入当前的群组通话中 | / | TUICallKit.joinInGroupCall | / |
设置自定义来电铃音 | TUICalling.setCallingBell | TUICallKit.setCallingBell | 替换引用、名称 |
开启/关闭静音模式 | TUICalling.enableMuteMode | TUICallKit.enableMuteMode | 替换引用、名称 |
开启/关闭悬浮窗功能 | TUICalling.enableFloatWindow | TUICallKit.enableFloatWindow | 替换引用、名称 |
设置监听事件 | TUICalling.setCallingListener | TUICallEngine.addObserver | 替换引用、名称 |
如下是此次升级过程中,变化较大的两个 API 的适配方案:
TUICalling.call 接口变更
TUICalling 代码示例
//原接口void call(String[] userIDs, Type type);//原调用方式String[] userIDs = new String[1];userIDs[0] = "123";TUICallingImpl.sharedInstance(this).call(userIDs, TUICalling.Type.AUDIO);
TUICallKit 代码示例
//新接口public void call(String userId, TUICallDefine.MediaType callMediaType)//新调用方式TUICallKit.createInstance().call("mike", TUICallDefine.MediaType.Audio)
TUICalling.setCallingListener 接口变更
TUICalling 代码示例
TUICallingImpl.sharedInstance(this).setCallingListener(new TUICalling.TUICallingListener() {@Overridepublic boolean shouldShowOnCallView() {return true;}@Overridepublic void onCallStart(String[] userIDs, TUICalling.Type type, TUICalling.Role role, View tuiCallingView) {}@Overridepublic void onCallEnd(String[] userIDs, TUICalling.Type type, TUICalling.Role role, long totalTime) {}@Overridepublic void onCallEvent(TUICalling.Event event, TUICalling.Type type, TUICalling.Role role, String message) {}});
TUICallKit 代码示例
private TUICallObserver mTUICallObserver = new TUICallObserver() {@Overridepublic void onError(int code, String msg) {super.onError(code, msg);}@Overridepublic void onCallReceived(String callerId, List<String> calleeIdList, String groupId, TUICallDefine.MediaType callMediaType) {super.onCallReceived(callerId, calleeIdList, groupId, callMediaType);}@Overridepublic void onCallCancelled(String callerId) {super.onCallCancelled(callerId);}@Overridepublic void onCallBegin(TUICommonDefine.RoomId roomId, TUICallDefine.MediaType callMediaType, TUICallDefine.Role callRole) {super.onCallBegin(roomId, callMediaType, callRole);}@Overridepublic void onCallEnd(TUICommonDefine.RoomId roomId, TUICallDefine.MediaType callMediaType, TUICallDefine.Role callRole, long totalTime) {super.onCallEnd(roomId, callMediaType, callRole, totalTime);}//按需加载其他事件监听......}TUICallEngine.createInstance(mContext).addObserver(mTUICallObserver);
升级完上述 API 后,即可正常使用
TUICallKit
组件。