根据本文指导在你的 Android 项目中快速集成 Agora Classroom SDK 并调用 API 启动声网灵动课堂。
Agora 在 GitHub 提供一个开源的示例项目,演示了如何集成 Agora Classroom SDK 并调用 API 启动灵动课堂。你可以下载并查看源代码。
你可以参考以下步骤,通过 Gradle 获取 Agora Classroom SDK。
在项目的 build.gradle 文件中添加以下库:
allprojects {
repositories {
...
maven { url'http://maven.aliyun.com/nexus/content/groups/public' }
maven { url 'https://jitpack.io' }
}
}
在项目的 build.gradle 文件中添加以下依赖:
dependencies {
...
// 请访问 https://jitpack.io/#AgoraIO-Community/CloudClass-Android 获取最新 Tag
implementation 'com.github.AgoraIO-Community:CloudClass-Android:Tag'
}
首先,创建 AgoraEduSDKConfig
实例对 SDK 进行全局配置,然后调用 setConfig
方法传入该实例。AgoraEduSDKConfig
包含以下参数:
参数 | 描述 |
---|---|
appId |
Agora App ID,详见前提条件中获取 Agora App ID。 |
eyeCare |
是否开启护眼模式:false :(默认)关闭护眼模式。true : 开启护眼模式。 |
/** 进行全局配置 */
// Agora App ID
String appId = "XXX";
// 是否开启护眼模式
boolean eyeCare = false;
AgoraEduSDK.setConfig(new AgoraEduSDKConfig(appId, eyeCare));
初始化完成后,创建 AgoraEduLaunchConfig
实例进行课堂启动配置,然后调用 launch
方法传入该实例。AgoraEduLaunchConfig
包含以下参数:
参数 | 描述 |
---|---|
userName |
用户名,用于课堂内显示,长度在 64 字节以内。 |
userUuid |
用户 ID。这是用户的全局唯一标识,需要与你生成 RTM Token 时使用的 UID 一致。长度在 64 字节以内。以下为支持的字符集范围(共 89 个字符): |
roleType |
用户在课堂中的角色,可设为:AgoraEduRoleTypeStudent : 学生 |
roomName |
课堂名,用于课堂内显示,长度在 64 字节以内。 |
roomUuid |
课堂 ID。这是课堂的全局唯一标识。长度在 64 字节以内。以下为支持的字符集范围(共 89 个字符): |
roomType |
课堂类型,可设为:AgoraEduRoomType1V1 : 1 对 1 互动教学。1 位老师对 1 名学生进行专属在线辅导教学。AgoraEduRoomTypeSmall : 在线互动小班课。1 位老师进行在线教学,多名学生实时观看和收听。课堂人数上限为 500。上课过程中,老师可点名学生“上台”发言,与老师进行实时音视频互动。AgoraEduRoomTypeBig : 互动直播大班课。1 位老师进行在线教学,多名学生实时观看和收听。学生人数无上限。上课过程中,学生可“举手”请求发言,与老师进行实时音视频互动。 |
rtmToken |
用于鉴权的 RTM Token,详见前提条件中生成 RTM Token。 |
startTime |
课堂开始时间,单位为毫秒,以第一个进入课堂的用户传入的参数为准。 |
duration |
课堂持续时间,单位为秒,以第一个进入课堂的用户传入的参数为准。 |
region |
课堂所在区域,各客户端的区域必须一致,否则无法互通。 |
/** 课堂启动配置 */
// 用户名
String userName = "XXX";
// 用户 ID,需要与你生成 RTM Token 时使用的用户 ID 一致
String userUuid = "XXX";
// 教室名称
String roomName = "XXX";
// 教室 ID
String roomUuid = "XXX";
// 用户角色
int roleType = AgoraEduRoleType.AgoraEduRoleTypeStudent.getValue();
// 课堂类型
int roomType = AgoraEduRoomType.AgoraEduRoomType1V1.getValue()/AgoraEduRoomType.AgoraEduRoomTypeSmall.getValue()/AgoraEduRoomType.AgoraEduRoomTypeBig.getValue();
// RTM Token
String rtmToken = "";
// 课堂开始时间,单位为毫秒,以第一个进入教室的用户传入的参数为准
long startTime = System.currentTimeMillis() + 100;
// 课堂持续时间,单位为秒,以第一个进入教室的用户传入的参数为准
long duration = 310L;
// 课堂所在区域,各客户端的区域必须一致,否则无法互通。
String region = AgoraEduRegionStr.cn;
AgoraEduLaunchConfig agoraEduLaunchConfig = new AgoraEduLaunchConfig(
userName, userUuid, roomName, roomUuid, roleType, roomType, rtmToken, startTime, duration, region);
AgoraEduClassRoom classRoom = AgoraEduSDK.launch(getApplicationContext(), agoraEduLaunchConfig, (state) -> {
Log.e(TAG, "launch-课堂状态:" + state.name());
});
成功启动课堂后,你可以看到如下画面: