java开发安卓流程图,Android-Java GO课堂小班课教师端实现流程 - 开发者中心 - ZEGO即构科技...

教师端实现流程

更新时间:2021-03-09 18:28

1 基础流程图

以下展示了小班课场景的重要流程,可根据流程实现教师端相关功能。

教师端登录/登出流程

f7318e7ac8e16957c5fc65989de14a7a.png

教师端控制学生权限流程(例如:开启学生摄像头、麦克风、共享权限等)

9d58458e44f3fae134a2f2b3df31df69.png

2 核心 API 时序图

参考以下时序图,搭配 Express Video SDK、ZegoWhiteboardView SDK、ZegoDocsView SDK、Zego GO 课堂云服务可实现小班课场景的相关功能,包括课堂管理、实时音视频通讯、互动白板、文件共享等。

83cbce9bfc1a8c3dc97e40502e75c5e0.png

3 GO课堂业务逻辑参考

以下步骤介绍了GO课堂的基础实现流程,开发者可以据此理解GO课堂的实现方案。

3.1 准备工作

3.1.1 设置环境参数

GO课堂实现了不同环境、不同业务的切换,包括切换大班课、小班课,切换国内、海外环境,切换测试、正式环境。

详请如下:

大班课、小班课业务

国内环境、海外环境

房间服务:测试环境、正式环境

文件服务:测试环境、正式环境

3.1.2 初始化 SDK

根据环境不同,获取对应的 AppID 和 AppSign。然后各个 SDK 再进行相应初始化,包括以下 3 个 SDK:

Express-Video SDK(含白板功能)

ZegoDocsView SDK

ZegoWhiteboardView SDK

ZegoWhiteboardView SDK 需要在 Express-Video SDK 初始化完毕后、登录房间操作之前进行初始化。

详情请参考 ZegoSDKManager.initSDKEnvironment() 方法

3.2 登录房间

3.2.1 获取业务后台 host

登录房间前需要获取GO课堂业务后台的 host 地址,host 地址根据以下两个因素决定:

GO课堂业务后台是否为测试环境

国内环境或海外环境

详情请参考 ZegoApiClient.setAppContext() 方法。

3.2.2 登录

使用 JoinActivity 完成登录。登录成功后 App 会跳转至课堂主界面。

3.3 白板及文件视图加载

3.3.1 进入房间获取白板列表

如果白板列表为空,则创建一个空白板,并通知 Express-Video SDK 创建对应白板。

如果白板列表有值,则根据白板 ZegoWhiteboardViewModel 判断是否包含文件。

如果 ZegoFileInfoModel 中的 fileID 为空字符串,则说明是纯白板,可将白板视图直接添加至 WhiteboardContainer 视图上。

如果 ZegoFileInfoModel 中的 fileID 有值,说明白板包含文件信息,则需要在父视图中先添加文件视图,再添加白板视图(否则文件和白板无法正常配合使用)。并根据 fileID 加载文件内容,然后调整白板和文件视图至合适的位置和尺寸。

教师端和学生端在业务上的主要差别如下:

教师端在刚进入房间的时候,如果拉取到的白板数量为 0 时,需要负责创建一个新的白板。

教师端可以对学生端进行权限管理。

3.3.2 白板切换同步

如果远端创建了多个白板,本端可以通过如下逻辑实现本端白板和远端白板切换同步。

在进入房间后,Express-Video SDK 会调用 ZegoEventHandler 协议中的 onRoomExtraInfoUpdate 方法,根据方法参数获取远端正在显示的白板 ID,然后在白板列表加载完毕后找到对应的 ZegoWhiteboardView 进行展示。

3.3.3 白板图元及文件同步

在白板和文件加载完成之后,白板图元和文件的页数需要和远端进行同步。

白板图元对象的同步在 ZegoWhiteboardView SDK 内部已经实现。白板的偏移量和文件页数的同步工作需要开发者使用相应方法自行完成。

由于白板和文件的 contentSize 是一样大的,文件和白板的滚动偏移量必须相同,否则白板上的涂鸦会对应到文件的错误位置。在与白板一一对应的 ZegoWhiteboardViewModel 中可以获取到该白板的横向与纵向偏移百分比。根据百分比偏移量,可以计算出白板和文件视图正确的偏移量,这样可以和远端保持一致。

纯白板页数同步

由于纯白板内部没有页数的概念,需要开发者根据偏移百分比自行定义并计算。例如GO课堂内创建的纯白板为 “5 * 白板view” 尺寸,总共有 5 页。如果纵向偏移百分比为 20%,那么当前处于第 2 页(0.2 * 5 + 1)。

文件页数同步

通过 ZegoDocsView 类获取文件的总页数以及当前页码。

动态 PPT 同步

如果是带有动画的动态 PPT 文件,需要调用 ZegoDocsView.playAnimation() 方法同步额外的动画信息。

Excel sheet 同步

Excel 文件的每个 sheet 都对应着一个白板文件,本端在收到远端的当前的白板 ID 后,可以找到对应的白板和文件视图,调用 DocsView 的 ZegoDocsView.switchSheet() 方法即可完成 sheet 的切换。

4 核心 API 参考

4.1 ZEGO GO课堂云服务

完整的 API 请参考 GO课堂云服务。

4.2 Express-Video SDK (含白板功能)

API

实现功能

登录房间,推拉流前必须登录房间。

用户将自己本地的音视频流推送到 ZEGO 实时音视频云。

用户可以从 ZEGO 音视频云拉取远端用户的音视频流进行互通。

4.3 ZegoWhiteboardView SDK

API

实现功能

初始化 SDK。

设置白板相关配置(日志,缓存路径)。

配合 DocsView 使用,根据DocsView的可见区域大小设置白板可见区域大小。

跳转到指定位置,用百分比描述。

获得白板 View 对应的 ViewModel。

完整的 API 请参考 互动白板 API 文档。

4.4 ZegoDocsView SDK

API

实现功能

用配置类的实例初始化 SDK。

从客户端本地上传文件转码,并存储。

获取当前视图对应的 fileID,与 loadFile 传入的 fileID 一致。

加载指定的文件,文件内容将被渲染到视图上。

跳转到指定页位置。

跳转到指定位置,用百分比描述。

完整的 API 请参考 文件共享 API 文档。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值