文档捉虫大赛:人工智能与机器学习专题> HOT
本文将介绍如何用最短的时间完成 TUIRoomKit 组件的接入,跟随本文档,您将在一个小时的时间内完成如下几个关键步骤,并最终得到一个包含完备 UI 界面的音视频会议功能。

环境准备

最低兼容 Android 4.4(SDK API Level 19),建议使用 Android 5.0 (SDK API Level 21)及以上版本。
Android Studio 3.5 及以上的版本(Gradle 3.5.4 及以上的版本)。
Android 4.1 及以上的手机设备。

步骤一:开通服务

在使用 TUIRoomKit 发起会议前,您需要开通 TUIRoomKit 专属的多人音视频互动服务,详细步骤如下:
1. 登录 实时音视频 TRTC 控制台,单击左侧应用管理页面,找到需要开通 TUIRoomKit 的应用(SDKAppID),点击详情,进入应用概览界面。



2. 在应用概览页面找到含 UI 低代码集成接入卡片,选择多人音视频(TUIRoomKit),点击领取体验,领取7天体验版 TUIRoomKit 进行接入测试。
注意:
领取体验版后仅开通 TUIRoomKit 7天的体验资格,测试过程中所产生的音视频时长等资源消耗,仍会按照实时音视频 TRTC 标准计费规则计费;
新账号首次可前往 试用中心 免费领取10000分钟音视频时长;
如果所选 SDKAppID 体验版领取次数已达上限,需要购买 TUIRoomKit 包月套餐才能开通服务,请点击场景套餐订阅按钮或前往 购买页 购买;






3. 领取完成后,可以看到体验版的基本信息,包括服务状态、版本信息和功能详情、到期时间。



4. 单击集成指南,即可参照集成指南开始集成。至此 TUIRoomKit 服务开通完成。




步骤二:集成 TUIRoomKit 组件

1. Github 中克隆/下载代码,然后拷贝 Android 目录下的debugtimcommontuichattuiroomkit子目录到您当前工程中的 app 同级目录中。
2. 工程根目录下找到 setting.gradle 文件,并在其中增加如下代码,它的作用是将tuiroomkit 作为本地模块导入到您当前的项目中。
include ':debug'
include ':timcommon'
include ':tuichat'
include ':tuiroomkit'
3. 在 app 目录下找到 build.gradle 文件,并在其中增加如下代码,它的作用是声明当前 app 对新加入的 tuiroomkit 组件的依赖。
api project(':tuiroomkit')
说明
由于我们在 SDK 内部使用了Java 的反射特性,需要将 SDK 中的部分类加入不混淆名单,因此需要您在 proguard-rules.pro 文件中添加如下代码:
-keep class com.tencent.** { *; }
注意
TUIRoomKit 会在内部帮助您动态申请相机、麦克风、读取存储权限等,如果因为您的业务问题需要删减,可以请修改tuiroomkit/src/main/AndroidManifest.xml

步骤三:登录 TUIRoomKit 组件

在您的项目中添加如下代码,它的作用是通过调用TUIRoomKit 中的相关接口完成组件的登录。这个步骤异常关键,因为只有在登录后才能正常使用 TUIRoomKit 的各项功能,故请您耐心检查相关参数是否配置正确:
TUIRoomKit.sharedInstance(context).login(1400000001, // 请替换为步骤一取到的 SDKAppID
"998", // 请替换为您的 UserID
"xxxxxxxxxx"); // 您可以在控制台中计算一个 UserSig 并填在这个位置
参数说明 这里详细介绍一下 login 函数中所需要用到的几个关键参数:
SDKAppID:在 步骤一 中的最后一步中您已经获取到,这里不再赘述。
UserID:当前用户的 ID,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)。
UserSig:使用 步骤一 的第3步中获取的 SecretKeySDKAppIDUserID 等信息进行加密,就可以得到 UserSig,它是一个鉴权用的票据,用于腾讯云识别当前用户是否能够使用 TRTC 的服务。您可以通过控制台中的 辅助工具 生成一个临时可用的 UserSig
更多信息请参见 如何计算及使用 UserSig
注意:
这个步骤也是目前我们收到的开发者反馈最多的步骤,常见问题如下:
SDKAppID 设置错误,国内站的 SDKAppID 一般是以140开头的10位整数。
UserSig 被错配成了加密密钥(SecretKey),UserSig 是用 SecretKey 把 SDKAppID、UserID 以及过期时间等信息加密得来的,而不是直接把 SecretKey 配置成 UserSig。
UserID 被设置成“1”、“123”、“111”等简单字符串,由于 TRTC 不支持同一个 UserID 多端登录,所以在多人协作开发时,形如 “1”、“123”、“111” 这样的 UserID 很容易被您的同事占用,导致登录失败,因此我们建议您在调试的时候设置一些辨识度高的 UserID。
Github 中的示例代码使用了 genTestUserSig 函数在本地计算 UserSig 是为了更快地让您跑通当前的接入流程,但该方案会将您的 SecretKey 暴露在 App 的代码当中,这并不利于您后续升级和保护您的 SecretKey,所以我们强烈建议您将 UserSig 的计算逻辑放在服务端进行,并由 app 在每次使用 TUIRoomKit 组件时向您的服务器请求实时计算出的 UserSig。

步骤四:使用 TUIRoomKit

设置用户信息

通过调用 TUIRoomKitsetSelfInfo 即可设置用户的用户名、头像。
public abstract void setSelfInfo(String userName, String avatarURL);
参数
类型
含义
userName
String
用户名
avatarURL
String
用户头像 URL

准备页面(可选)

通过调用 TUIRoomKitenterPrepareView 就可以进入准备页面。
boolean enablePreview=true; // 是否开启视频预览,不需预览则设置为false
TUIRoomKit.sharedInstance(context).enterPrepareView(enablePreview);
参数
类型
含义
enablePreview
boolean
是否开启视频预览

创建房间

通过调用 TUIRoomKit 的 createRoom 方法并指定房间的类型为TUIRoomKit.UIScene.MEETING,就可以创建房间。
public enum RoomScene {
MEETING, // 会议类型的房间
LIVE // 直播类型的房间
}
public class RoomInfo {
public String name; // 房间名称,仅房主可设置
public String owner; // 房主id,无需设置,进房后可自动获取
public String roomId; // 房间号
public boolean isOpenCamera; // 进房是否开启摄像头
public boolean isUseSpeaker // 进房是否开启扬声器
public boolean isOpenMicrophone; // 进房是否开启麦克风
public boolean isCameraDisableForAllUser = false; // 房间内是否不允许打开视频,仅房主可设置,默认允许
public boolean isMicrophoneDisableForAllUser = false; // 房间内是否不允许打开音频,仅房主可设置,默认允许
public boolean isMessageDisableForAllUser = false; // 房间内是否不允许发送弹幕消息,仅房主可设置,默认允许
public TUIRoomDefine.SpeechMode speechMode = TUIRoomDefine.SpeechMode.FREE_TO_SPEAK;//房间内发言管理模式,默认自由发言
}
RoomInfo roomInfo = new RoomInfo();
roomInfo.name = "xx"; // 请设置为您需要的房间名称
roomInfo.roomId = "998"; // 请设置为您需要的房间号
roomInfo.isOpenCamera = true; // 请按照您的业务需求设置
roomInfo.isOpenMicrophone = true; // 请按照您的业务需求设置
roomInfo.isUseSpeaker = true; // 请按照您的业务需求设置
TUIRoomKit.sharedInstance(context).createRoom(roomInfo, TUIRoomKit.RoomScene.MEETING);
参数
类型
含义
roomInfo
RoomInfo
房间的基本信息
scene
TUIRoomKit.RoomScene
房间类型,示例:TUIRoomKit.RoomScene.MEETING

加入房间

通过调用 TUIRoomKit 的 enterRoom 方法并指定房间类型与房间号,就可以进入指定房间。

RoomInfo roomInfo = new RoomInfo();
roomInfo.roomId = "998"; // 请设置为您要进入的房间号
roomInfo.isOpenCamera = true; // 请按照您的业务需求设置
roomInfo.isOpenMicrophone= true; // 请按照您的业务需求设置
roomInfo.isUseSpeaker = true; // 请按照您的业务需求设置
TUIRoomKit.sharedInstance(context).enterRoom(roomInfo)
参数
类型
含义
roomInfo
RoomInfo
房间的基本信息
说明
加入房间时的 RoomInfo 参数只需关注roomId、isOpenCamera、isOpenMicrophone、isUseSpeaker四个字段,其他字段无需设置。

交流与反馈

如果您在使用过程中,有什么建议或者意见,欢迎您加入我们的 TUIRoomKit 技术交流 QQ 群:770645461,进行技术交流和产品沟通。