有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

升级说明

TUICallKit 是腾讯云推出一款新的音视频通话 UI 组件,是 TUICalling 的升级版本,支持群组通话、AI降噪等更多功能特性、支持全平台间互通呼叫,功能更加稳定,欢迎您使用新的 TUICallKit 组件,在升级前您需要了解到:
TUICalling 和 TUICallKit 支持相互呼叫,升级前后,请保持 SDKAppID 不变,否则会影响相互通信;
TUICallKit 需要搭配 IM 音视频通话能力套餐,可以单击 IM 控制台,进入对应 SDKAppID 应用的基本配置页面,并在页面的右下角找到含 UI 低代码场景方案功能区,选择音视频通话,然后单击免费体验即可开通 TUICallKit 的 7 天免费试用服务。如果需要正式应用上线,可以单击 购买正式版 即可进入购买页面。



注意:
IM 音视频通话能力针对不同的业务需求提供了差异化的付费版本供您选择,您可以在 IM 购买页 了解包含功能并选购您适合的版本。

升级步骤

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() {
@Override
public boolean shouldShowOnCallView() {
return true;
}

@Override
public void onCallStart(String[] userIDs, TUICalling.Type type, TUICalling.Role role, View tuiCallingView) {
}

@Override
public void onCallEnd(String[] userIDs, TUICalling.Type type, TUICalling.Role role, long totalTime) {
}

@Override
public void onCallEvent(TUICalling.Event event, TUICalling.Type type, TUICalling.Role role, String message) {
}
});
TUICallKit 代码示例
private TUICallObserver mTUICallObserver = new TUICallObserver() {
@Override
public void onError(int code, String msg) {
super.onError(code, msg);
}

@Override
public void onCallReceived(String callerId, List<String> calleeIdList, String groupId, TUICallDefine.MediaType callMediaType) {
super.onCallReceived(callerId, calleeIdList, groupId, callMediaType);
}

@Override
public void onCallCancelled(String callerId) {
super.onCallCancelled(callerId);
}

@Override
public void onCallBegin(TUICommonDefine.RoomId roomId, TUICallDefine.MediaType callMediaType, TUICallDefine.Role callRole) {
super.onCallBegin(roomId, callMediaType, callRole);
}

@Override
public 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组件。