声网 Agora 教育 aPaaS 产品灵动课堂现已降级至 v1.1.0 版本。声网 Agora 灵动课堂能够帮忙教育机构和开发者最快 15 分钟上线自有品牌、全功能的在线互动教学平台,节俭 90% 开发工夫。灵动课堂自 1 月 20 日公布,截至 3 月 31 日注册用户数超 1000 家,反对的课堂数量超过 50 万 / 月,寰球笼罩学生数累计超过 400 万。
在新版本的灵动课堂中,咱们针对此前“UI 不易于批改”的问题,将 UI 代码与业务逻辑隔离,并提供 UI Kit,从而能让开发者能够更容易地批改、增加 UI 控件。既保证了低代码开发,又提供了更高的自定义灵便度。
同时,为了让大家能够替换、增加灵动课堂的一些功能模块,甚至针对本身业务需要减少功能模块,咱们还减少了自定义插件性能,即 ExtApp。你能够像搭积木一样,将本人实现的一些课堂性能,比方倒计时、抢答等,退出灵动课堂。
接下来咱们来具体讲讲 v1.1.0 版声网 Agora 灵动课堂的新性能与优化。
课堂 UI 自定义更灵便
在新版本的 UI 方面,咱们做了两项降级。首先,咱们从新设计了三套针对 1 对 1 互动教学、在线互动小班课、互动直播大班课场景的 UI。开发者能够间接应用,部署上线。同时,咱们还将 UI 代码与外围业务逻辑隔离开,提供了 UI Kit,让开发者能够在此基础上批改出更合乎本身品牌调性的界面。
在基于 UI Kit 批改 UI 时,开发者无需理解灵动课堂的外围业务逻辑,只需基于咱们提供的 UI Kit 简略批改 UI 组件,就能够调整界面的色彩、菜单栏大小、图标和按钮的地位等各功能模块的 UI。在 agora-classroom-sdk 下的 ui-components 目录中, 蕴含了所有 UI 组件的组合规定, 你还能够在这里退出其它 UI 组件, 或调整整体布局。
如下图所示,是灵动课堂的默认 UI。
通过自定义批改后,课堂界面可出现齐全不同的格调。如下图所示。
用 ExtApp 灵便扩大课堂性能
本次更新中,咱们进一步凋谢了灵动课堂的底层代码,提供了 ExtApp 自定义插件。你能够将 ExtApp 了解为灵动课堂的补充插件,可能帮忙开发者依据理论需要,在灵动课堂以插件模式嵌入本人实现的功能模块。每个 ExtApp 都有本人独立的生命周期和数据管理。
例如,在课堂中,老师心愿能够让学生在规定工夫内解题,那么你就须要在课堂中退出一个倒计时性能。这个“倒计时”就能够作为一个插件,嵌入到 Agora Classroom SDK 中。
具体实现步骤有三步:首先,须要继承 AgoraBaseExtApp 类,在你的 App 中实现一个自定义插件,在 AgoraExtAppBase 类中蕴含了初始化插件、更新属性等办法,具体可参见文档。
第二步,实现插件之后,就能够注册插件了。须要调用 AgoraEduSDK.registerExtApps 办法,将该插件注册到 Agora Classroom SDK 中。以咱们刚刚说的倒计时插件为例,以下示例代码演示了如何注册一个倒计时插件 CountDownExtApp:
// appIdentifier: 插件 ID,将用于标识插件,不同平台的雷同插件必须应用同一 ID。// extAppClass: 容器 App Class Type, 由 SDK 创立该类的实例。// frame: 插件容器的大小,代表间隔底层视图的间距。底层视图由 Classroom SDK 生成(不蕴含平安区域)。// language: 容器语言,Classroom SDK 会透传该变量到具体插件容器中,这样容器能够本人设置多语言。let countDown = AgoraExtAppConfiguration(appIdentifier: "io.agora.countdown",
extAppClass: CountDownExtApp.self,
frame: UIEdgeInsets(top: 10,
left: 50,
bottom: 10,
right: 50),
language: "zh")
// 插件图标,用于在 UIKit 层设置,默认会在白板工具栏的工具箱弹窗里显示。countDown.image = image
countDown.selectedImage = selectedImage
let apps = [countDown]
AgoraEduSDK.registerExtApps(apps)
实现第二步之后,这个倒计时就会成为 Agora Classroom SDK 的一个插件。
最初一步,就是启动插件。
默认状况下,胜利注册的插件会显示在灵动课堂白板工具栏的工具箱弹窗里显示。如果你想要为该插件自定义一个入口,你可批改咱们在上文提到的 UI Kit 模块的相应文件,在灵动课堂三大场景中为该插件增加一个入口,而后在点击或者显示该插件时调用以下办法即可。
// 在 willLaunchExtApp 办法中传入插件 ID。extAppContext?.willLaunchExtApp(appIdentifier)
目前咱们在示例代码中,提供了倒计时性能插件的例子,可在声网文档核心,搜寻「灵动课堂」,查阅具体文档获取。
新增页面录制,所见所录即所得
在线教育场景中,课程录制是相对的刚需性能。声网在往年 2 月上线了页面录制服务,可将音视频、白板、课件以及聊天信息等内容全副同时录制下来,且不带来额定的带宽、性能开销,录制过程不影响任何主播 / 观众的 RTC 互动体验。而且录制完结后,能够实时生成 MP4 文件,兼容支流播放器。
灵动课堂 v1.1.0 新增反对页面录制,可能将指定 URL 的页面内容和音频混合录制为一个 MP4 音视频文件,实现音视频内容、白板内容、课件内容同步录制。开发者可通过灵动课堂云服务 RESTful API 配置并发动页面录制,详见声网文档核心,搜寻「灵动课堂云服务 RESTful API」。
新增课件治理
为晋升课堂学习效果,灵动课堂 v1.1.0 新增课件模块。老师可通过灵动课堂客户端上传 PPT、DOC、PDF 等格局的文件。灵动课堂客户端会对后缀名为 “ppt”、”pptx”、”doc”、”docx”、”pdf” 的文件默认开启文件转换,以用于课堂内白板展现。开发者还可通过灵动课堂云服务 RESTful API 配置并上传文件至云盘,并获取课堂内云盘文件变更事件,详见声网文档核心,灵动课堂云服务 RESTful API。
在 v1.1.0 灵动课堂中,上传至云盘的文件默认贮存在 Agora 的阿里云 OSS 账号中。如开发者想要将文件存储至本人的 OSS 账号中,须要更新 Agora 控制台 aPaaS 配置中的白板 JSON 配置对象,详见灵动课堂前提条件中在 Agora 控制台配置灵动课堂一节。
v1.1.0 还反对课件预加载。在 Agora Classroom SDK 的 launch 办法中新增 courseWareList 和 personalCourseWareList 字段,用于预加载教育机构指派的和老师端上传的课件。胜利调用后,客户端会将云盘中的课件缓存至本地。详见声网文档核心,Agora Classroom SDK API。
除此之外,声网 Agora 教育 aPaaS 灵动课堂 v1.1.0 还新增了用户列表、课堂处分、点名下台、课堂状态等新性能,详情可点击「浏览原文」理解。
灵动课堂依靠声网 Agora 自研的软件定义实时网 SD-RTN™,基于深度学习算法实时、精确辨认网络异样,实现用户“零感知”故障切换机制,可为业务高可用保驾护航。同时,咱们还针对东南亚、中东、北美等外教所在国和国内中小城市,做到专属网络优化,端到端优质传输率高于 99%。咱们在后续的产品迭代中,还将为灵动课堂减少更多功能,提供更好的开发灵便度。如果各位开发者有任何针对灵动课堂的性能需要,欢送拜访 rtcdeveloper.com 发帖留言与咱们交换。