Classroom SDK Kotlin API
本页提供声网 Classroom SDK for Android 的 Kotlin API 参考。
AgoraClassSDK
AgoraClassSDK
是声网 Classroom SDK 的基础接口类,提供灵动课堂教育场景的核心方法。
setConfig
public static void setConfig(AgoraClassSdkConfig config);
全局配置 SDK。
参数
参数 | 描述 |
---|---|
config | 全局配置参数,详见 AgoraClassSdkConfig 。 |
launch
public static AgoraEduClassRoom launch(@NotNull Context context,
@NotNull AgoraEduLaunchConfig config,
@NotNull AgoraEduLaunchCallback callback);
启动灵动课堂。
参数
参数 | 描述 |
---|---|
context | App 的上下文环境。 |
config | 课堂启动配置,详见 AgoraEduLaunchConfig 。 |
callback | SDK 通过 AgoraEduLaunchCallback 类向 App 报告课堂启动相关的事件。 |
返回值
AgoraEduClassRoom
类。
replaceClassActivity
public static void replaceClassActivity(int classRoomType, Class<extend BaseClassActivity> activity)
如果开发者高度自定义课堂 UI,可调用此方法替换课堂类型所对应的 Activity。
参数
参数 | 描述 |
---|---|
classRoomType | 课堂类型。 |
activity | 课堂 Activity。 |
registerExtensionApp
public static void registerExtensionApp(List<AgoraExtAppConfiguration> apps);
在 EduCore 内注册开发者自行开发的 ExtApp。
ExtApp 是灵动课堂 UIKit 的补充插件。详见自定义插件。
exit
fun exit() {
FCRLauncherManager.notifyAllLauncher()
}
退出 Classroom SDK。
AgoraEduLaunchCallback
AgoraEduLaunchCallback
类用于 SDK 向 App 报告课堂启动相关的事件。
onCallback
void onCallback(AgoraEduEvent state);
课堂事件回调。
参数 | 描述 |
---|---|
state | 课堂事件,详见 AgoraEduEvent 。 |
类型定义
AgoraClassSdkConfig
public class AgoraClassSdkConfig {
@NotNull
private String appId;
}
SDK 全局配置。用于 setConfig
方法。
属性 | 描述 |
---|---|
appId | 声网 App ID。 |
AgoraEduLaunchConfig
class AgoraEduLaunchConfig(val userName: String,
val userUuid: String,
val roomName: String,
val roomUuid: String,
val roleType: Int = AgoraEduRoleType.AgoraEduRoleTypeStudent.value,
val roomType: Int,
val rtmToken: String,
val startTime: Long?,
val duration: Long?,
val region: String,
var videoEncoderConfig: EduContextVideoEncoderConfig? = null,
val mediaOptions: AgoraEduMediaOptions?,
val streamState: AgoraEduStreamState?,
val latencyLevel: AgoraEduLatencyLevel? = AgoraEduLatencyLevel.AgoraEduLatencyLevelUltraLow,
val userProperties: MutableMap<String, String>? = null,
val widgetConfigs: MutableList<AgoraWidgetConfig>? = null) : Parcelable,
var uiMode: AgoraEduUIMode = AgoraEduUIMode.LIGHT
课堂启动配置。用于 launch
方法。
属性 | 描述 |
---|---|
userName | 用户名,用于课堂内显示,长度在 64 字节以内。 以下为支持的字符集范围(共 89 个字符):
|
userUuid | 用户 ID。这是用户的全局唯一标识,需要与你生成 RTM Token 时使用的 UID 一致。长度在 64 字节以内。 以下为支持的字符集范围(共 89 个字符):
|
roomName | 课堂名,用于课堂内显示,长度在 64 字节以内。 以下为支持的字符集范围(共 89 个字符):
|
roomUuid | 课堂 ID。这是课堂的全局唯一标识。长度在 64 字节以内。 以下为支持的字符集范围(共 89 个字符):
|
roleType | 用户在课堂中的角色,详见 AgoraEduRoleType 。 |
roomType | 课堂类型,详见 AgoraEduRoomType 。 |
rtmToken | 用于鉴权的 RTM Token,详见使用 AccessToken 鉴权。 |
startTime | 课堂开始时间,单位为毫秒,以第一个进入课堂的用户传入的参数为准。 |
duration | 课堂持续时间,单位为秒,以第一个进入课堂的用户传入的参数为准。 |
region | 区域。建议设置为靠近你的课件或录制文件对象存储服务所在的区域,因为跨区域传输较大的静态资源会造成比较大的延迟。举例来说,如果你的 S3 服务在北美,则建议将 region 也设为北美区域。所有灵动课堂客户端必须设置相同的区域,否则无法互通。支持的区域详见 AgoraEduRegion 。 |
videoEncoderConfig | 视频编码参数配置,包含视频宽高、帧率、码率,详见 EduVideoEncoderConfig |
mediaOptions | 媒体流相关设置,包含媒体流加密,详见 AgoraEduMediaOptions 。 |
streamState | 用于控制学生上台后是否发音视频流,详见 AgoraEduStreamState 。 |
latencyLevel | 观众端延时级别,详见 AgoraEduLatencyLevel 。 |
userProperties | 由开发者自定义的用户属性。详见如何设置自定义用户属性?。 |
uiMode | (非必填)课堂界面模式,详见 AgoraEduUIMode 。 |
AgoraEduStreamState
class AgoraEduStreamState (
var videoState:Int,
var audioState:Int
)
用于控制学生上讲台后是否默认有发音视频流的权限。用于 AgoraEduLaunchConfig
。
参数 | 描述 |
---|---|
videoState | 是否有发视频流的权限:
|
audioState | 是否有发音频流的权限:
|
AgoraEduMediaOptions
class AgoraEduMediaOptions(val encryptionConfigs: AgoraEduMediaEncryptionConfigs?)
媒体流相关设置。用于 AgoraEduLaunchConfig
。
参数 | 描述 |
---|---|
encryptionConfig | 媒体流加密配置,详见 AgoraEduMediaEncryptionConfig 。 |
AgoraEduMediaEncryptionConfig
class AgoraEduMediaEncryptionConfigs(
val encryptionKey: String?,
val encryptionMode: Int
)
媒体流加密配置,用于 AgoraEduMediaOptions
。
参数 | 描述 |
---|---|
mode | 加密模式,详见 AgoraEduEncryptMode 。 |
key | 加密密钥。 |
EduVideoEncoderConfig
class EduVideoEncoderConfig(
var videoDimensionWidth: Int = 320,
var videoDimensionHeight: Int = 240,
var frameRate: Int = 15,
var bitrate: Int = 200,
var mirrorMode: Int = EduMirrorMode.AUTO.value
)
视频编码参数配置类,用于 AgoraEduLaunchConfig
。
- 在小班课中,分辨率的默认值为 120p(160*120)。
- 在一对一和大班课中,分辨率的默认值为 240p(320*240)。
参数 | 描述 |
---|---|
width | 视频帧宽度 (pixel)。 |
height | 视频帧高度 (pixel)。 |
frameRate | 视频帧率 (fps)。默认值为 15。 |
bitrate | 视频码率 (Kbps)。默认值为 200。 |
mirrorMode | 视频镜像模式,详见 EduMirrorMode 。 |
AgoraEduEvent
课堂事件。在 onCallback
回调中报告。
属性 | 描述 |
---|---|
AgoraEduEventFailed | 0 : 进入课堂失败。 |
AgoraEduEventReady | 1 : 课堂准备完成。 |
AgoraEduEventDestroyed | 2 : 课堂已销毁。 |
AgoraEduEventForbidden | 3 : 用户被禁止进入课堂。 |
AgoraEduRoleType
用户在课堂中的角色。在 AgoraEduLaunchConfig
中设置。
属性 | 描述 |
---|---|
AgoraEduRoleTypeStudent | 2 : 学生。 |
AgoraEduRoomType
课堂类型。在 AgoraEduLaunchConfig
中设置。
属性 | 描述 |
---|---|
AgoraEduRoomType1V1 | 0 : 1 对 1 互动教学。1 位老师对 1 名学生进行专属在线辅导教学。 |
AgoraEduRoomTypeBig | 2 : 大班课。1 位老师进行在线教学,多名学生实时观看和收听。老师和学生均使用声网 RTC 服务,课堂人数上限为 5000。 |
AgoraEduRoomTypeSmall | 4 : 在线互动小班课。1 位老师进行在线教学,多名学生实时观看和收听。小班课中课堂人数上限为 200。 |
AgoraEduUIMode
课堂界面显示模式。在 AgoraEduLaunchConfig
中设置。
参数 | 描述 |
---|---|
LIGHT | (默认)明亮模式。 |
DARK | 暗黑模式。 |
AgoraEduLatencyLevel
观众端延时级别。用于 AgoraEduLaunchConfig
。
参数 | 描述 |
---|---|
AgoraEduLatencyLevelLow | 1 :低延时。发流端与观众端的延时为 1500 ms - 2000 ms。 |
AgoraEduLatencyLevelUltraLow | 2 :(默认)超低延时。发流端与观众端的延时为 400 ms - 800 ms。 |
AgoraEduEncryptMode
加密模式,用于 AgoraEduMediaEncryptionConfig
。
参数 | 描述 |
---|---|
NONE | 0 :不加密。 |
AES_128_XTS | 1 :128 位 AES 加密,XTS 模式。 |
AES_128_ECB | 2 :128 位 AES 加密,ECB 模式。 |
AES_256_XTS | 3 :256 位 AES 加密,XTS 模式。 |
SM4_128_ECB | 4 :128 位 ECB 加密,SM4 模式。 |
AES_128_GCM | 5 :128 位 AES 加密,GCM 模式。 |
AES_256_GCM | 6 :256 位 AES 加密,GCM 模式。 |
AES_128_GCM2 | 7 :128 位 AES 加密,GCM 模式。相比于 AES_128_GCM 加密模式,AES_128_GCM2 加密模式安全性更高且需要设置盐。 |
AES_256_GCM2 | 8 :256 位 AES 加密,GCM 模式。256 位 AES 加密,GCM 模式。相比于 AES_256_GCM 加密模式,AES_256_GCM2 加密模式安全性更高且需要设置盐。 |
AgoraEduRegion
区域。
属性 | 描述 |
---|---|
CN | (默认)中国大陆。 |
NA | 北美。 |
EU | 欧洲。 |
AP | 亚太。 |
EduMirrorMode
是否开启镜像模式。用于 EduVideoEncoderConfig
。
参数 | 描述 |
---|---|
AUTO | 0 :SDK 默认关闭镜像模式。 |
ENABLED | 1 :开启镜像模式。 |
DISABLED | 2 :关闭镜像模式。 |