Android

最近更新时间:2024-09-11 09:54:42

我的收藏

背景说明

AllInOneRTCEngine 适配了声网和腾讯两套 SDK,方便您同时集成声网和腾讯的服务,接口完全采用声网的接口调用及回调方式,仅需修改初始化逻辑,即可快速切换 SDK。当前适配版本:
声网 RtcEngine:4.3.0
腾讯 TRTCCloud:11.7.0.13946

准备工作

最低兼容 Android 4.1(SDK API Level 19),建议使用 Android 5.0 (SDK API Level 21)及以上版本。
Android Studio 3.5 及以上版本。
App 要求 Android 4.1 及以上设备。

开通服务

使用 AllInOneRTCEngine 需要同时开通声网服务和 TRTC 服务,开通声网服务参见 开通服务,创建项目,获取 appIdtoken
开通 TRTC 服务步骤如下:
1. 进入 TRTC 控制台,如果没有创建应用,请先创建应用。
2. 进入应用概览,记录SDKAppIDSDKSecretKey




调试指引

导入并依赖 AllInOneRTCEngine 模块

导入 AllInOneRTCEngine 模块,以及 TRTC SDK(版本11.7.0.13946)和 Agora SDK(版本:4.3.0),在 app 模块下的 build.gradle 文件中输入以下代码:
dependencies {
....
// 依赖 AllInOneRTCEngine 模块(版本:1.0.0)。
implementation 'com.tencent.liteav:allinone-rtc-engine:latest.release'
// 依赖 TRTC SDK(版本:11.7.0.13946)。
implementation 'com.tencent.liteav:LiteAVSDK_TRTC:11.7.0.13946'
// 依赖 Agora SDK(版本:4.3.0)。
implementation 'io.agora.rtc:full-sdk:4.3.0'
}
成功依赖 "AllInOneRTCEngine" 模块、TRTC SDK、Agora SDK。

初始化引擎

1. 导入 AllInOneRTCEngine 包名。
import com.tencent.rtc.aio.AIORTCEngine; import com.tencent.rtc.aio.RTCEngineManager;
2. 将 SDK 由类型 RtcEngine 改为类型 AIORTCEngine 。
// 修改前
private RtcEngine mEngine;
// 修改后
private AIORTCEngine mEngine;
3. 调用以下接口创建 AllInOneRTCEngine 实例,通过 参数enableTRTC 切换SDK。
RTCEngineManager.create(Context context, String appId, IRtcEngineEventHandler listener, boolean enableTRTC)
参数:
参数名
含义
context
应用程序的环境信息,上下文。
appId
根据您想创建的 SDK 实例,输入对应 Agora 或 TRTC 的 appId。
listener
类型为 IRtcEngineEventHandler 用于 SDK 向 App 发送事件通知。
enableTRTC
true:创建的 SDK 实例为 TRTCCloud 类型。false:创建的 SDK 实例为 RtcEngine。
假设您创建的 SDK 实例变量名为 mEngine,切换到 TRTC SDK 的示例代码如下:
// 事件回调监听
static class TRTCCloudListenerImpl extends IRtcEngineEventHandler {
}
mTRTCListener = new TRTCCloudListenerImpl();
// 创建 TRTC SDK 实例: mEngine = RTCEngineManager.create(this, appId, mTRTCListener, true);

加入频道

调用以下接口加入频道:
// 加入频道接口
joinChannel(String token, String channelId, String optionalInfo, int uid);
参数:
参数名
含义
使用 TRTC
使用 Agora
token
进房鉴权票据
您可以使用 AppId 和 uid 计算出 token,计算方法请参见 如何计算及使用 UserSig
参见 声网文档 获取临时token
channelId
房间号
字符串类型的房间号
字符串类型的房间号
uid
用户 ID
数字类型用户名
数字类型用户名

结束互动

1. 调用以下接口离开频道:
leaveChannel();
2. 调用以下接口销毁 SDK 实例:
RTCEngineManager.destroy();

常见问题

RTC 线路如何选择?

当 APP 集成 Agora 和 TRTC 两套 SDK 时,两套 SDK 之间不互通,这里需要一个房间分配策略用于选择使用哪套 SDK ,这里提出两种方式供参考:
按房间号来分配,每次进房需要知道此房间是使用那种类型的 SDK。
按业务来区分,同一种业务全部使用一种类型 SDK。
关于房间号 TRTC 默认使用整型房间号,如果您需要字符串类型房间号,请联系架构师帮您开通。