基本概念
本页介绍灵动课堂涉及的几个基本概念,以便于你更好地理解和使用灵动课堂。
用户 (User)
定义
灵动课堂中的“用户”可以理解为角色。每个角色在课堂中的最小单位是用户,每个用户都拥有以下属性:
- 用户 ID:灵动课堂用来区分用户的全局唯一标识。
- 用户名称:可以设定用户的昵称、中文名或英文名,仅用于展示。
- 用户角色:课堂中不同的角色,如老师、学生、助教和观众。
- 用户自定义属性:除了以上属性之外,声网还支持开发者自定义用户属性,如用户头像、用户性别。
使用
以上属性可由开发者在客户端调用 launch
方法时设置。
房间 (Room)
定义
灵动课堂中的“房间”可以理解为线下教学场景中的教室。一个教室可以在不同时间、由不同授课老师使用不同教材完成不同的课程。线下教学教室通常会存在普通教室、实验教室、多媒体教室等类型,灵动课堂的房间也有不同的分类。每个房间都拥有以下属性:
- 房间 ID:灵动课堂用来区分房间的全局唯一标识。
- 房间名称:可以设定房间的中文名或英文名,仅用于展示。
- 房间类型:声网目前提供 1 对 1、小班课和大班课。不同房间类型在功能和人数上限有所不同。
- 房间自定义属性:除了以上属性之外,声网还支持开发者自定义房间属性,如房间状态、房间标签。
创建
房间的创建可以由客户端调用 launch
方法创建,也可以由后端调用创建课堂 RESTful API 创建,声网更推荐后端统一调用 RESTful API 创建。
使用
以上属性可由开发者在客户端调用 launch
方法时设置。灵动课堂会以该房间第一位进入的用户传入的参数(房间 ID、房间名称、房间类型)自动创建一个房间。后续进入的用户调用 launch
方法时,传入相同的参数(房间 ID、房间名称、房间类型),就会加入到同一个房间。房间内所有用户离开后一小时,声网会自动销毁该房间。
课堂 (Class)
定义
灵动课堂中的“课堂”可以理解为线下教学场景中的一节课程。每个课堂可以设定以下属性:
- 课堂状态:课堂有“未开始”、“进行中”和“已结束”三种状态。
- 开始时间:课堂的开始时间点。课堂开始时间前,状态为”未开始“;课堂开始时间后,状态变为“进行中”。
- 持续时长:课堂的持续时间。持续时长后,课堂状态变为”已结束“。
- 拖堂时长:课堂结束后该课堂所在的房间仍然可以维持的时间长度。超过拖堂时长后,房间将被关闭,用户会立即被踢出房间,同时其它用户也无法再加入房间。
使用
以上属性可由开发者在客户端调用 launch
方法时设置。灵动课堂会以该房间第一位进入的用户传入的参数设置课堂属性。
流 (Stream)
定义
灵动课堂中的“流”可以理解为音视频流以及用户发送音视频流的权限。音视频流是在灵动课堂中实现实时音视频互动的传输介质。开发者可通过 API 给予某个用户进行特定操作的权限。同一个用户可以有多路流,例如,一个用户可能既有发送本地音视频的权限,又有分享屏幕的权限。
使用
当开发者调用 addCoHost
方法时,可为指定用户创建一条流,给予该用户发送音频或视频的权限,同时灵动课堂服务端会自动生成一个流 ID。当开发者调用 removeCoHost
方法时,可将某个用户的一条流永久销毁。