新东方在线App进度上传业务

东方盛慧科技大约 2 分钟androidandroid技术

新东方在线App进度上传业务

进度业务: 既有时间点概念,对应观看进度; 也有时间片概念, 对应统计时长
视频分为:直播 直播回放 录播

曾经发生过的问题及原因

问题原因问题发生位置
国外学员问题字符串转换成浮点数时,国外的小数点会变成逗号,导致上传失败上传进度组装数据前
只上传一次问题更新VideoProcess时,是否上传标志位设置错误存储时

数据结构:

  1. 存储相关的进度数据结构:
类名功能描述
StudyRecord各业务线的进度显示使用,使用范围较广
PlayRecord仅播放器中使用,存储时间点跟随VideoProcess
LearningRecordProduct仅用于我的->本地学习记录页面
VideoProcess使底层插入对上层保持透明,屏蔽底层存储数据结构差异,解耦存储不同数据结构的状况
  1. 上传进度时所用的数据结构及对应接口和功能:

tips: 截止到4.5.0
录播进度时长 是一个接口
直播中的 进度和时长是两个接口分开的
直播回放进度时长是一个接口

类名对应接口功能介绍
UploadProgress/upload/video_process/v1录播进度和时长上传时的json结构
仅在上传进度时方便json转换用,上传进度前会将VideoProcess临时转换
UploadLiveProgress/upload/live_vod_process/v1直播回放进度(暂无时长)上传时的json结构
仅在上传进度时方便json转换用,上传进度前会将VideoProcess临时转换
混排有courseId nodeId isRecommend
直播组时 有groupId
UploadLiveingProgress/upload/live_process/直播中学习进度统计
UploadLiveingPeriodTimeProgress/upload/live_time_stat直播中学习时长统计

进度上传时序图

dd
dd

App业务体现位置:

  • 各个业务线课表中的学习进度
  • 播放器中的上次学习
  • 首页的上次学习
  • 课表中的上次学习
  • 首页课程的总学习进度
  • 微信学习
  • 本地学习记录
  • 后台时长统计
上次编辑于:
贡献者: 雷勋