升级指引

本文档旨在指导客户将 tencent_trtc_cloud 升级为新版本的 tencent_rtc_sdk。升级过程中,我们将详细介绍所需的步骤、注意事项以及可能遇到的问题和解决方案,以确保平滑过渡到新版本。

升级指引

注意:
进行升级前请注意对当前项目做好备份。
tencent_rtc_sdk 目前尚未支持 tencent_trtc_cloud 中的 tx_beauty_manager
tencent_rtc_sdk 暂时没有支持 web 端的计划。如果您的项目涉及到了tencent_trtc_cloud的 web 端,我们并不建议您进行升级。

1. 引入新 SDK

在控制台中进入项目目录:
cd <path to your flutter project>
移除旧版本tencent_trtc_cloud
flutter pub remove tencent_trtc_cloud
引入新版本tencent_rtc_sdk
flutter pub add tencent_rtc_sdk

2. 替换 import package

可以通过 IDE 提供的 替换/批量替换 功能,将当前项目中 import 的 tencent_trtc_cloud 替换为 tencent_rtc_sdk
注意:
如果您直接使用了我们tencent_trtc_cloud example 中的 GenerateTestUserSig 来生成自身项目的 userSig ,麻烦删除掉其中 JsGenerateTestUserSig 相关逻辑。

3. 替换 TRTCCloudDef 枚举值

tencent_rtc_sdk移除了tencent_trtc_cloud中提供的 TRTCCloudDef 类,将类中提供的各种 static 变量拆分为了众多 dart 枚举,以便利您对于部分参数的使用。
对于您现有项目中使用的 TRTCCloudDef 类,您可以参照下方对照表将 static 变量替换为对应枚举:
tencent_trtc_cloud
tencent_rtc_sdk
TRTCCloudDef.TRTC_VIDEO_RESOLUTION_*
TRTCVideoResolution
TRTCCloudDef.TRTC_VIDEO_RESOLUTION_MODE_*
TRTCVideoResolutionMode
TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_*
TRTCVideoStreamType
TRTCCloudDef.TRTC_QUALITY_*
TRTCQuality
TRTCCloudDef.TRTC_VIDEO_RENDER_MODE_*
TRTCVideoFillMode
TRTCCloudDef.TRTC_VIDEO_ROTATION_*
TRTCVideoRotation
TRTCCloudDef.TRTC_BEAUTY_STYLE_*
TRTCBeautyStyle
TRTCCloudDef.TRTC_VIDEO_PIXEL_FORMAT_*
TRTCVideoPixelFormat
TRTCCloudDef.TRTC_VIDEO_MIRROR_TYPE_*
TRTCVideoMirrorType
TRTCCloudDef.TRTC_APP_SCENE_*
TRTCAppScene
TRTCCloudDef.TRTCRole*
TRTCRoleType
TRTCCloudDef.VIDEO_QOS_CONTROL_*
TRTCQosControlMode
TRTCCloudDef.TRTC_VIDEO_QOS_PREFERENCE_*
TRTCVideoQosPreference
TRTCCloudDef.TRTC_AUDIO_QUALITY_*
TRTCAudioQuality
TRTCCloudDef.TRTC_AUDIO_ROUTE_*
TXAudioRoute
(speakerPhone & earpiece)
TRTCCloudDef.TRTC_REVERB_TYPE_
TXVoiceReverbType
TRTCCloudDef.TRTC_VOICE_CHANGER_TYPE_*
TXVoiceChangerType
TRTCCloudDef.TRTC_AUDIO_FRAME_FORMAT_*
TRTCAudioFrameFormat
TRTCCloudDef.TRTCSystemVolumeType*
(未支持)
TRTCCloudDef.TRTC_DEBUG_VIEW_LEVEL_*
(未支持)
TRTCCloudDef.TRTC_LOG_LEVEL_*
TRTCLogLevel
TRTCCloudDef.TRTC_GSENSOR_MODE_*
TRTCGSensorMode
TRTCCloudDef.TRTC_TranscodingConfigMode_*
(已废弃)
TRTCCloudDef.TRTC_VideoView_*
(未支持)
TRTCCloudDef.TXMediaDeviceType*
TXMediaDeviceType
TRTCCloudDef.TRTCRecordType*
TRTCLocalRecordType

4. 修改回调使用方法

tencent_trtc_cloud 中,回调需要使用者通过 switch 或 if 语句来捕获具体的回调,并手动解析 JSON 字符串以获取相关数据。这种使用方式可能会给用户带来不便。为此,我们在 tencent_rtc_sdk 中对回调机制进行了优化,以提升用户的接入体验,使其更加便捷和高效。

以 TRTCCloudListener 为例:

在新的回调机制中,registerListener 不再需要一个函数作为参数,而是需要一个 TRTCCloudListener 对象。您可以在初始化该对象时,选择性地为所需的回调函数赋值:
TRTCCloudListener speedTestListener = TRTCCloudListener(
onSpeedTestResult: (result) {
// TODO
}
);

5. 调用新方法

在本次升级中,我们删除了部分已被原生TRTC标注为废弃的接口,同时优化了部分接口的调用方法。
您可以在 API 概览 查找到我们目前支持的所有接口。
注意:
除 TRTCCloud.sharedInstance() 接口外,tencent_rtc_sdk中所有接口均为同步调用。

6. 平台配置

请在您的项目的 android/app/build.gradle 中进行如下配置:
android {
...
packagingOptions {
pickFirst 'lib/**/libliteavsdk.so'
}
...
}
注意:
tencent_rtc_sdk 使用 FFI 调用大部分 TRTC 接口,因此对您的 Android 环境有一定要求。请确保您的 Android 环境支持 CMake 3.13 或更高版本。