腾讯云TRTC iLiveSDK 迁移相关
TRTC V1(iLiveSDK) 和 V2(LiteAVSDK)版本有什么区别?
文章图片
文章图片
TRTC V1(iLiveSDK)如何升级至 V2(LiteAVSDK)?
【腾讯云TRTC iLiveSDK 迁移相关】1.如果您的项目从未集成过 TRTC SDK,强烈推荐直接使用 V2(LiteAVSDK),V2 在通话质量、线路规格、接入难度以及功能扩展上均有优势。
2.如果您的项目已经稳定并且没有问题,由于 V1 和 V2 的云端线路目前是不互通的,如果您的项目已经进入稳定运营阶段,可以暂时不升级。
3.如果您的项目正在对接旧版本 V1,推荐您可以直接对接 V2 版本,V2 版本的 API 接口采用全新设计,对接时间上相比于旧版本要减少很多。
4.如果您已经在使用旧版本 V1 并希望提升通话质量,由于 V1 和 V2 的云端线路目前是不互通的,所以升级新版本 SDK 需要经过一个“SDK 集成”、“放量铺开”以及“云端切换”的过程,大致步骤如下:
(1)在现有的项目中集成新版本的 SDK,并通过测试。
(2)在房间列表中增加 SDK 版本号字段,App 根据服务端的字段决定使用 V1 版本还是 V2 版本。
(3)发布新版本 App 并等待版本逐渐覆盖您的用户群。
(4)将房间列表中的 SDK 版本号字段从 V1 切换到 V2,完成线路的切换。
Android 端 LiteAVSDK 和 iLiveSDK 如何同时兼容集成?
iLiveSDK 和 LiteAVSDK 都使用到了 TRAE 来进行回声消除和降噪等音频处理,LiteAVSDK 中使用的 TRAE 版本更新,且包含了 iLiveSDK 中使用的全部功能接口,因此您只需要配置项目中使用 LiteAVSDK 中的 TRAE 库即可。
使用 aar 方式集成工程,修改您子项目(app 目录)下的 build.gradle,在 android{} 节点中进行如下配置:
注意:
添加引用时,LiteAVSDK 必须要在 iLiveSDK 前面。
文章图片
iOS 端 LiteAVSDK + iLiveSDK + BeautySDK 如何同时兼容集成?
TRTC V1 版本中,使用了 BeautySDK 来实现美颜及动效等功能,TRTC V2 版本里,我们将 BeautySDK 的功能内嵌到了 LiteAVSDK 之中,更加方便用户使用。如果已经集成了 iLiveSDK,且在您的工程中已引入了 BeautySDK,就会遇到文件冲突,解决办法如下:
文章图片
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(...);
如需协助:https://partner.cloud.tencent...
推荐阅读
- 太空舱项目--云原生故障模拟器
- 华为云会议的前世今生
- FORK AI 获数千万元 Pre-A 轮融资(定位 MarTech 赛道|助力云服务商精准获客)
- 云计算中的虚拟化
- 技术盘点(2022年云原生架构趋势解读)
- 软件即服务| SaaS
- 社区云解析
- 混合云解析
- dataurl|第七天 黑马十次方 吐槽列表与详细页、发吐槽与评论功能、问答频道功能、掌握DataURL和阿里云OSS
- 为什么云计算实例会启动虚拟机而不是容器(解决办法)