項(xiàng)目介紹
本文介紹互動(dòng)課堂項(xiàng)目的構(gòu)成,運(yùn)行流程以及項(xiàng)目如何通過(guò)阿里云音視頻終端SDK使用阿里云視頻直播服務(wù)的。
項(xiàng)目構(gòu)成
本項(xiàng)目主要分為如下三部分。
客戶端:為老師和學(xué)生提供了一系列的界面。在本項(xiàng)目中與用戶進(jìn)行直接交互。
AppServer:AppServer基于函數(shù)計(jì)算(FC)等方式為AUI Kits低代碼集成工具提供了一套快捷部署、靈活定制的后臺(tái)服務(wù)。本項(xiàng)目中作為服務(wù)端負(fù)責(zé)通過(guò)阿里云的直播API與阿里云直播服務(wù)進(jìn)行交互。
阿里云視頻直播服務(wù):視頻直播服務(wù)(ApsaraVideo Live)是基于內(nèi)容接入與分發(fā)網(wǎng)絡(luò)和大規(guī)模分布式實(shí)時(shí)轉(zhuǎn)碼技術(shù)打造的音視頻直播平臺(tái),提供便捷接入、高清流暢、低延遲、高并發(fā)的音視頻直播服務(wù)。在本項(xiàng)目中為項(xiàng)目提供直播,連麥直播和群消息的功能。
項(xiàng)目流程
互動(dòng)課堂的項(xiàng)目大體流程分為如下三部分。
教師創(chuàng)建教室并發(fā)起直播,創(chuàng)建教室的同時(shí)創(chuàng)建直播群消息。
學(xué)生進(jìn)入教室直播間,觀看視頻直播同時(shí)可以發(fā)送直播消息。
學(xué)生主動(dòng)連麥(或者被教師邀請(qǐng)連麥),這時(shí)學(xué)生開啟音視頻直播,未上麥的學(xué)生需要觀看上麥學(xué)生和老師的混合直播。
接下來(lái)我們通過(guò)時(shí)序圖,分別對(duì)這三部分進(jìn)行詳細(xì)的介紹。
教師創(chuàng)建教室并發(fā)起直播
這部分可以分為兩步。
創(chuàng)建教室。
開始上課,也就是發(fā)起教室直播。
接下來(lái)我們對(duì)這兩步進(jìn)行分別介紹。
創(chuàng)建教室
這部分主要介紹了教師創(chuàng)建教室的流程。教師需要通過(guò)客戶端向AppServer請(qǐng)求創(chuàng)建教室,AppServer通過(guò)阿里云視頻直播API創(chuàng)建直播群,并獲取教室直播地址的相關(guān)信息。AppServer在數(shù)據(jù)庫(kù)創(chuàng)建教室相關(guān)信息包括直播群和直播間的信息后,將創(chuàng)建好的教室相關(guān)信息返回給客戶端。之后教師就可以通過(guò)客戶端在直播群中發(fā)送消息。
本部分AppServer需要用到阿里云視頻直播的API創(chuàng)建直播群并且返回教室直播地址,所以我們需要在阿里云直播控制臺(tái)推流域名配置、播流域名配置、創(chuàng)建直播互動(dòng)消息應(yīng)用和創(chuàng)建實(shí)時(shí)音視頻應(yīng)用并進(jìn)行白板配置。
發(fā)起課堂直播
這部分主要介紹了教師開啟直播上課的流程。教師需要通過(guò)客戶端獲取音視頻并通過(guò)音視頻終端SDK向推流地址進(jìn)行推流直播。客戶端請(qǐng)求AppServer將DB中對(duì)應(yīng)教室的狀態(tài)改為開始上課并通知學(xué)生客戶端進(jìn)行拉流觀看。
本部分客戶端需要用到推流地址進(jìn)行推流,所以我們需要在阿里云直播控制臺(tái)推流域名配置、播流域名配置和創(chuàng)建實(shí)時(shí)音視頻應(yīng)用。
本部分客戶端用到音視頻終端的Web連麥互動(dòng)SDK向推流地址進(jìn)行推流,學(xué)生客戶端用到音視頻終端的播放器SDK觀看教室直播。
學(xué)生觀看直播
這部分主要介紹了學(xué)生登錄指定教室,發(fā)送群消息和觀看直播課堂的流程。學(xué)生需要通過(guò)客戶端向AppServer請(qǐng)求登錄指定課堂,AppServer通過(guò)課程號(hào)向客戶端返回教室的相關(guān)信息。之后,學(xué)生就可以在直播群中發(fā)送消息,并且觀看已經(jīng)開始上課的直播教室。
本部分客戶端用到音視頻終端的播放器SDK觀看教室直播。
學(xué)生進(jìn)行連麥
這部分主要介紹了學(xué)生被教師邀請(qǐng)發(fā)起連麥的流程。這一部分流程比較復(fù)雜主要涉及到四種角色:
教師:邀請(qǐng)學(xué)生視頻上麥。
被邀請(qǐng)上麥學(xué)生:被教師邀請(qǐng)視頻連麥。
其他麥上學(xué)生:已經(jīng)和教師發(fā)起視頻連麥的學(xué)生。
麥下學(xué)生:沒有參與視頻連麥的學(xué)生。
本部分客戶端用到音視頻終端的播放器SDK觀看教室直播、需要在創(chuàng)建實(shí)時(shí)音視頻應(yīng)用中開啟旁路轉(zhuǎn)推。