本文介绍互动课堂项目的构成,运行流程以及项目如何通过阿里云音视频终端SDK使用阿里云视频直播服务的。
项目构成
本项目主要分为如下三部分。
客户端:为老师和学生提供了一系列的界面。在本项目中与用户进行直接交互。
AppServer:AppServer基于函数计算(FC)等方式为AUI Kits低代码集成工具提供了一套快捷部署、灵活定制的后台服务。本项目中作为服务端负责通过阿里云的直播API与阿里云直播服务进行交互。
阿里云视频直播服务:视频直播服务(ApsaraVideo Live)是基于内容接入与分发网络和大规模分布式实时转码技术打造的音视频直播平台,提供便捷接入、高清流畅、低延迟、高并发的音视频直播服务。在本项目中为项目提供直播,连麦直播和群消息的功能。
项目流程
互动课堂的项目大体流程分为如下三部分。
教师创建教室并发起直播,创建教室的同时创建直播群消息。
学生进入教室直播间,观看视频直播同时可以发送直播消息。
学生主动连麦(或者被教师邀请连麦),这时学生开启音视频直播,未上麦的学生需要观看上麦学生和老师的混合直播。
接下来我们通过时序图,分别对这三部分进行详细的介绍。
教师创建教室并发起直播
这部分可以分为两步。
创建教室。
开始上课,也就是发起教室直播。
接下来我们对这两步进行分别介绍。
创建教室
这部分主要介绍了教师创建教室的流程。教师需要通过客户端向AppServer请求创建教室,AppServer通过阿里云视频直播API创建直播群,并获取教室直播地址的相关信息。AppServer在数据库创建教室相关信息包括直播群和直播间的信息后,将创建好的教室相关信息返回给客户端。之后教师就可以通过客户端在直播群中发送消息。
本部分AppServer需要用到阿里云视频直播的API创建直播群并且返回教室直播地址,所以我们需要在阿里云直播控制台推流域名配置、播流域名配置、创建直播互动消息应用和创建实时音视频应用并进行白板配置。
发起课堂直播
这部分主要介绍了教师开启直播上课的流程。教师需要通过客户端获取音视频并通过音视频终端SDK向推流地址进行推流直播。客户端请求AppServer将DB中对应教室的状态改为开始上课并通知学生客户端进行拉流观看。
本部分客户端需要用到推流地址进行推流,所以我们需要在阿里云直播控制台推流域名配置、播流域名配置和创建实时音视频应用。
本部分客户端用到音视频终端的Web连麦互动SDK向推流地址进行推流,学生客户端用到音视频终端的播放器SDK观看教室直播。
学生观看直播
这部分主要介绍了学生登录指定教室,发送群消息和观看直播课堂的流程。学生需要通过客户端向AppServer请求登录指定课堂,AppServer通过课程号向客户端返回教室的相关信息。之后,学生就可以在直播群中发送消息,并且观看已经开始上课的直播教室。
本部分客户端用到音视频终端的播放器SDK观看教室直播。
学生进行连麦
这部分主要介绍了学生被教师邀请发起连麦的流程。这一部分流程比较复杂主要涉及到四种角色:
教师:邀请学生视频上麦。
被邀请上麦学生:被教师邀请视频连麦。
其他麦上学生:已经和教师发起视频连麦的学生。
麦下学生:没有参与视频连麦的学生。