为解决异地教学场景中,录播课没在直播课效果好,所以想打造公司自己的直播教学系统。在立项过程中,与产品经理进行深入沟通。详细沟通教师在直播授课时的具体需求,如板书演示、学生举手提问、电子白板等功能。经过需求调研与反复论证,最终确定项目开发方向,正式启动项目。
该项目包含多个核心功能模块,能为教师提供全面的在线教学支持。具体功能模块有:
1.主播上/下麦,用于推送教师摄像头及麦克风数据供学生观看收听。
2.共享屏幕,用于推送教师桌面画面供学生收看。
3.电子白板,用于展示预先编好的ppt及手写绘制等功能。
4.课堂聊天,用于老师与学生交流。
5.其它互动,如举手,签到,答题,抽奖等常用直播功能。
教师登录客户端后,便可通过界面相关功能按钮进行互动直播。
该项目所有端的团队由9人组成,其中产品经理 1 人、UI 设计师 1 人、前端开发工程师4人(web/安卓端/ios端/pc端各1人)、后端开发工程师 1 人、测试工程师 1 人、项目经理 1 人,开发周期为 6 个月。
我作为pc端开发工程师,负责的具体任务包括:直播界面的布局与样式实现,摄像头和桌面共享功能的实现开发,互动实时消息展示、举手请求处理等功能开发,通过 WebSocket 和Post与后端进行数据交互。实时数据使用IM进行通信。
PC客户端技术栈界面采用了qt实现的框架搭建页面,利用rtmp和webRTC技术实现了实时音视频通信,电子白板使用集成CEF嵌入web页面实现。其中的rtmp推流采用了ffmpeg进行二次开发实现。