iLiveSDK 迁移相关

最近更新时间:2022-10-10 11:06:40

我的收藏

TRTC V1(iLiveSDK) 和 V2(LiteAVSDK)版本有什么区别?




差异项
旧版本 V1
新版本 V2
内核架构
iLiveSDK
LiteAVSDK
IM SDK
内嵌
不内嵌
API 接口
V1
V2
CDN 推流
使用 REST API 开启
支持客户端开启
云端线路
V1 线路
V2 线路

TRTC V1(iLiveSDK)如何升级至 V2(LiteAVSDK)?

如果您的项目从未集成过 TRTC SDK,强烈推荐直接使用 V2(LiteAVSDK),V2 在通话质量、线路规格、接入难度以及功能扩展上均有优势。
如果您的项目已经稳定并且没有问题,由于 V1 和 V2 的云端线路目前是不互通的,如果您的项目已经进入稳定运营阶段,可以暂时不升级。
如果您的项目正在对接旧版本 V1,推荐您可以直接对接 V2 版本,V2 版本的 API 接口采用全新设计,对接时间上相比于旧版本要减少很多。
如果您已经在使用旧版本 V1 并希望提升通话质量,由于 V1 和 V2 的云端线路目前是不互通的,所以升级新版本 SDK 需要经过一个“SDK 集成”、“放量铺开”以及“云端切换”的过程,大致步骤如下:
1.1 在现有的项目中集成新版本的 SDK,并通过测试。
1.2 在房间列表中增加 SDK 版本号字段,App 根据服务端的字段决定使用 V1 版本还是 V2 版本。
1.3 发布新版本 App 并等待版本逐渐覆盖您的用户群。
1.4 将房间列表中的 SDK 版本号字段从 V1 切换到 V2,完成线路的切换。

Android 端 LiteAVSDK 和 iLiveSDK 如何同时兼容集成?

iLiveSDK 和 LiteAVSDK 都使用到了 TRAE 来进行回声消除和降噪等音频处理,LiteAVSDK 中使用的 TRAE 版本更新,且包含了 iLiveSDK 中使用的全部功能接口,因此您只需要配置项目中使用 LiteAVSDK 中的 TRAE 库即可。 使用 aar 方式集成工程,修改您子项目(app 目录)下的 build.gradle,在 android{} 节点中进行如下配置:
注意
添加引用时,LiteAVSDK 必须要在 iLiveSDK 前面。
android{
//1、在 gradle 配置 packagingoptions
packagingOptions {
pickFirst 'lib/armeabi-v7a/libTRAECodec.so'
pickFirst 'lib/armeabi-v7a/libstlport_shared.so'
pickFirst 'lib/armeabi/libTRAECodec.so'
pickFirst 'lib/armeabi/libstlport_shared.so'
}
//2、引入 dempendencies
implementation(name:'LiteAVSDK_TRTC_6.4.7108', ext:'aar') // 注意,TRTC 必须要在 iLiveSDK 前面
implementation 'com.tencent.ilivesdk:ilivesdk:1.9.4.6.4'
}

iOS 端 LiteAVSDK + iLiveSDK + BeautySDK 如何同时兼容集成?

TRTC V1 版本中,使用了 BeautySDK 来实现美颜及动效等功能,TRTC V2 版本里,我们将 BeautySDK 的功能内嵌到了 LiteAVSDK 之中,更加方便用户使用。如果已经集成了 iLiveSDK,且在您的工程中已引入了 BeautySDK,就会遇到文件冲突,解决办法如下:
版本
处理办法
BeautySDK 基本版
(不带 P 图版本)
您仅需在 Xcode 工程配置 BeautySDK 的头文件搜索路径,并取消链接 BeautySDK。
BeautySDK 高级版
(带 P 图版本)
您需要使用 LiteAVSDK 全功能版,并在 Xcode 工程配置 BeautySDK 的头文件搜索路径,同时取消链接 BeautySDK(LiteAVSDK 全功能版中带有 P 图组件,可以直接使用您之前购买的 P 图 licence,您无须再次付费)。

Windows 端 LiteAVSDK 和 iLiveSDK 如何同时兼容集成?

Windows 端的 LiteAVSDK 和 iLiveSDK 都使用到了 TRAE 来进行回声消除和降噪等音频处理,但 LiteAVSDK 使用的 TRAE 版本更新,且在功能使用上有差异,因此不能直接替换,您可以按以下方法进行处理。

工程结构

建议您的工程采用如下结构:
|
|- 主程序.exe
|- 主程序.exe依赖的其他文件
|- iLiveSDK.dll
|- iLiveSDK.dll依赖的其他文件
|- LiteAV
| |- liteav.dll
| |- liteav.dll依赖的其他文件

初始化方法

使用时,iLiveSDK 可以直接用 .lib 链接,也可以使用如下代码动态加载:
HMODULE hiLive = LoadLibrary("iLiveSDK.dll");
当您需要使用 LiteAVSDK 时,使用如下代码加载并进行初始化:
typedef ITRTCCloud* (*getTRTCShareInstanceMtd)();
typedef void(*destroyTRTCShareInstanceMtd)();

TCHAR dllPath[MAX_PATH];
GetModuleFileName(nullptr, dllPath, MAX_PATH);
PathRemoveFileSpec(dllPath);
wcscat(dllPath, L"\\\\LiteAV\\\\");
SetDllDirectory(dllPath);
HMODULE hLiteAV = LoadLibrary(L"liteav.dll");
if (!hLiteAV) {
printf("载入liteav.dll失败: %d", GetLastError());
return;
}

getTRTCShareInstanceMtd pGetTRTCShareInstance = (getTRTCShareInstanceMtd)GetProcAddress(hLiteAV, "getTRTCShareInstance");
if (!pGetTRTCShareInstance) {
printf("载入函数getTRTCShareInstance失败");
return;
}

destroyTRTCShareInstanceMtd pDestroyTRTCShareInstance = (destroyTRTCShareInstanceMtd)GetProcAddress(hLiteAV, "destroyTRTCShareInstance");
if (!pDestroyTRTCShareInstance) {
printf("载入函数destroyTRTCShareInstance失败");
return;
}

ITRTCCloud *pTrtcCloud = m_pGetTRTCShareInstance();
if (!pTrtcCloud) {
printf("创建TRTC实例失败");
return;
}
SetDllDirectory(nullptr);

pTrtcCloud->enterRoom(...);