- 音视频
- 即时通讯
- 教育
- 前端
- 桌面应用
【免费下载链接】flat
Project flat is the Web, Windows and macOS client of Agora Flat open source classroom.
Agora Flat 是开源的在线教室客户端(覆盖 Web、Windows 与 macOS),本文以仓库内 docs/releases/v1.2.0/en.md 为骨架,逐条拆解 v1.2.0 版本带来的新功能、体验优化与缺陷修复,并结合packages目录下的真实源码,说明快捷键提示、视角跟随、白板重连等能力在代码层面的落地方式。读完本文,你将掌握 v1.2.0 的核心变更清单,并能顺着源码路径定位快捷键配置表、头像快捷操作组件与课堂布局相关实现。
版本概览
v1.2.0 是一次典型的“能力扩展 + 稳定性加固”版本,变更集中在三个方向:
- 新增:插件中心(Beta)、快捷键提示
- 优化:视角跟随改为互相跟随、动态 PPT 服务更新、书写体验优化
- 修复:偶发听不到对方语音、断网重连导致白板崩溃、大班课/一对一视频区域折叠导致的布局错位
下面按“新增 → 优化 → 修复”的顺序,逐项说明其内容,并给出仓库内的源码级佐证。
新增一:插件中心(Beta)
v1.2.0 的发布说明在 Features 中首先列出 “Support plugin center (Beta)”,即在客户端内引入插件中心入口,作为扩展课堂教学能力(如工具类、互动类插件)的试点。
需要说明的是:在本仓库当前快照的packages目录中,并没有独立的plugin-center子包(packages/下现存的是flat-components、flat-i18n、flat-pages、flat-server-api、flat-services、flat-stores、flat-types、flat-vite-plugins等),因此可以推断插件中心在 v1.2.0 之后经历了持续迭代或模块重组。对于本版本的读者,重点是把插件中心理解为 Flat 桌面/Web 客户端在 v1.2.0 首次以 Beta 形态出现的扩展能力载体,后续版本会在此基础上继续演进。
新增二:快捷键提示
“Support shortcut key tips” 是本版本最直观、也最容易在源码中验证的新功能,它包含两层含义:
- 可查询的快捷键一览表:在“用户设置”页提供完整的快捷键总览;
- 悬浮提示:在工具按钮上悬浮时展示对应快捷键,降低学习成本。
设置页的快捷键总览表
源码位置:HotKeySettingPage/index.tsx 与 useHotKeyData.ts。
设置页使用 antdTable的展开行(expandable)组织数据:顶层按“工具栏(toolbar)/ 编辑器(editor)”分组,展开后逐条列出快捷键。数据源全部集中在 useHotKeyData.ts 中,翻译文案则来自 en.json(如shortcut-name、tool-selector、tool-pen、tool-eraser、tool-laser-pointer、undo、redo等 i18n key)。
工具栏(tools)分组快捷键:
| 功能 | 快捷键 |
|---|---|
| 选择工具(Select) | S |
| 画笔(Pencil) | P |
| 橡皮(Eraser) | E |
| 圆形(Circle) | C |
| 矩形(Rectangle) | R |
| 箭头(Arrow) | A |
| 直线(Line) | L |
| 激光笔(Laser pointer) | Z |
| 抓手(Hand) | H |
编辑器(edit)分组快捷键:
| 功能 | 快捷键 |
|---|---|
| 删除对象 | Backspace / Delete |
| 等比缩放 | Shift / ⇧ |
| 切换到下一种颜色 | Alt + Q / ⌥ + Q |
| 切换到上一种颜色 | Alt + Shift + Q / ⌥ + Shift + Q |
| 画笔绘制正圆 | Shift + Mouse |
| 从中心绘制圆形 | Ctrl + Mouse / ⌘ + Mouse |
| 撤销 | Ctrl + Z / ⌘ + Z |
| 重做 | Ctrl + Y / ⌘ + Y |
| 复制 | Ctrl + C / ⌘ + C |
| 粘贴 | Ctrl + V / ⌘ + V |
表格同时给出 Windows(Ctrl/Alt)与 macOS(⌘/⌥)两套键位写法,说明客户端在两种平台上都做了适配。
偏好设置中的快捷键设置入口
除设置页外,客户端还在偏好设置弹窗中提供了快捷键设置入口,见 ShortcutSettings.tsx,其标题文案使用 i18n keyshortcut-settings,与设置页的快捷键总览形成互补,保证用户在课堂内外都能快速查阅快捷键。
课堂中的头像快捷操作
与“快捷键提示”同属“快捷操作”范畴的,还有课堂内对视频头像的快捷操作面板,见 Shortcuts/index.tsx、Shortcuts.tsx 与 Rewards.tsx:
- 房主(creator)视角:对主持人头像提供“恢复窗口(
restore-windows)”“全员静音(all-mute-mic)”按钮; - 学生/观众视角:对普通用户头像提供“授予白板操作权(
whiteboard-access)”“奖励(reward)”按钮; - 奖励动效:
Rewards组件监听 RTM 的reward事件,用 SVGA 动画(animation.svga)+ 音效(reward.mp3)在目标用户头像上播放动画,通过data-user-uuid定位目标 DOM。
这些代码印证了 v1.2.0 在“快捷键/快捷操作提示”方向上的整体设计:既有静态的快捷键速查表,也有动态的悬浮快捷面板。
优化一:视角跟随调整为互相跟随
“Adjust the view follow function to follow each other” 表示将白板的视角跟随从单向跟随改为互相跟随:此前可能只允许主持人跟随学生或学生单向跟随主持人,v1.2.0 后任意一侧的视角变化都能同步到对方,适合一对一、小班课中双方共同盯住同一块白板区域的场景。这类能力通常作用于 whiteboard-store 的视口(viewport)同步逻辑,具体跟随粒度由白板会话状态驱动。
优化二:动态 PPT 服务更新
“Updated dynamic PPT service” 指向课件转换/播放链路。仓库中与该能力对应的模块包括 file-convert-h5(H5 动态课件转换)与 file-convert-netless(Netless 课件转换)。本次更新属于服务端/转换流程的迭代,方向上是为了提升动态 PPT(含动画、页内交互)在课堂白板中的播放稳定性与还原度。
优化三:书写体验优化
“Optimized writing experience” 覆盖白板画笔在书写跟手度、笔画平滑度与橡皮擦除手感上的改进。从仓库结构看,书写相关实现沉淀在 fastboard 服务提供者(颜色快捷键、文件插入、光标注入等)与 flat-stores 的 whiteboard-store 中,v1.2.0 的优化正是基于这套渲染链路的迭代。
修复一:偶发听不到对方说话
“It may not be able to hear each other's speech” 属于音频链路问题,涉及 RTC 的远端音频流订阅与播放。Flat 的实时音视频能力由 agora-rtc 提供(Electron 与 Web 两套实现,分别见 agora-rtc-electron 与 agora-rtc-web)。此类修复通常围绕远端流订阅时机、断流重订阅与设备切换后的恢复逻辑展开,保证加入课堂后能稳定听到对端声音。
修复二:断网重连导致白板崩溃
“Disconnection and reconnection causes whiteboard to crash” 是课堂场景中最关键的稳定性问题:弱网环境下白板连接断开、SDK 自动重连时,如果状态同步/重放逻辑未正确处理,容易触发白板渲染异常甚至崩溃。
本次修复的核心在于重连后的会话恢复与状态重建。后续版本继续加固了该链路——v1.5.0 发布说明 中明确提到 “Adjust the interaction of disconnecting and reconnecting the whiteboard”,并修复“一方断线重连成功后,另一方仍错误显示其已离开”的问题,可以推断 v1.2.0 是这条重连稳定性改进链路的起点,后续版本在此基础上持续收敛重连边界行为。白板能力本身由 whiteboard 服务提供者 与 whiteboard-store 承载,重连恢复涉及房间重建、历史数据回放与本地状态重置三者的协同。
修复三:大班课/一对一视频区域折叠导致布局错位
“Large class/one to one video area collapsing causes layout misalignment” 属于 UI 布局类缺陷:大班课(BigClass)与一对一(OneToOne)场景中,当视频区域被折叠(collapse)后,其余区域的尺寸计算未跟随更新,导致布局错位。
对应页面实现位于 BigClassPage/index.tsx 与 OneToOnePage/index.tsx,两者都属于纯展示型页面(BigClassPage.less、OneToOnePage.less承担样式)。修复方向是让折叠状态驱动容器尺寸重算,使剩余区域在视频面板收起/展开时都能正确回流。
小结
v1.2.0 为 Agora Flat 带来了两项面向用户体验的新能力——插件中心(Beta)与快捷键提示,其中快捷键提示在 useHotKeyData.ts 中留下了完整、可查阅的键位表;同时通过视角互相跟随、动态 PPT 服务更新与书写体验优化提升了课堂交互质量,并修复了语音、白板重连崩溃与视频区折叠布局错位三类影响核心课堂体验的问题。如果你正在基于 Flat 做二次开发,推荐从 flat-pages/src/components/Shortcuts 与 HotKeySettingPage 入手理解其快捷键体系,再结合 whiteboard 相关 stores 追踪视角跟随与重连恢复逻辑。
- 音视频
- 即时通讯
- 教育
- 前端
- 桌面应用
【免费下载链接】flat
Project flat is the Web, Windows and macOS client of Agora Flat open source classroom.
相关推荐
Agora Flat v1.2.0 技术解读:插件中心、快捷键体系与白板音视频稳定性升级
Agora Flat v1.2.0 技术解读:插件中心、快捷键体系与白板音视频稳定性升级 导读 本文基于 Agora Flat 开源课堂项目(Web / Win
音视频即时通讯教育前端桌面应用Agora Flat v1.0.0-beta.5 版本解析:房间类型 UI 重构与课堂稳定性修复
Agora Flat v1.0.0 beta.5 版本解析:房间类型 UI 重构与课堂稳定性修复 Agora Flat 是声网开源的跨平台在线互动课堂客户端,支
音视频即时通讯教育前端桌面应用Agora Flat v1.4.0 版本更新解读:多课件并行预览、课堂交互优化与稳定性修复
Agora Flat v1.4.0 版本更新解读:多课件并行预览、课堂交互优化与稳定性修复 本文基于 Agora Flat 开源课堂( flat https:/
音视频即时通讯教育前端桌面应用
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考