国家中小学智慧教育平台(basic.smartedu.cn)的非官方第三方客户端,基于 Flutter 构建,覆盖 macOS / Windows / Linux / Android / iOS(等待好心人提供证书)。
- 课程教学:学段 → 年级 → 学科 → 版本 → 册次 → 新旧教材 六级目录浏览,章节树 + 课时列表
- 视频播放:基于 mpv(media_kit)的原生管线播放加密 HLS。本地鉴权代理注入令牌、协商密钥,CDN 节点故障时自动切换,官方网页播放偶尔会(或者部分设备稳定的)打不开视频,本软件可以打开。
- 桌面级播放控件:进度/缓冲条、±10s、倍速、音量、全屏、键盘快捷键(空格/K/←→/↑↓/F/M/Esc)、触摸手势(双击全屏、横拖快进、竖拖音量)
- 断点续播:观看进度自动记录,超过 30s 的课时打开即续播
- 多课时课程自动拆分为课时列表:旧教材按 bkks 标签,新教材(无标签)按资源排列顺序推导;课内点击即切换,无需返回目录。单课时课程同样以课时列表呈现(条目即课程本身)
- 电子教材:PDF 在线阅读,自动记忆阅读页码,支持滑条跳页
- 课时文档预览:课程包内的课件 / 教学设计 / 学习任务单 / 课后练习均为内嵌 PDF,点击即在应用内预览(自动跳过平台的转码目录与白板元数据,直取 PDF 本体),无需下载
- 本地搜索:教材 / 课程材料 / 课时三级本地检索(平台远程搜索接口有 WAF 指纹拦截,无法在第三方客户端调用;提供"在浏览器打开官方搜索"兜底)
- 账号登录:软件内 WebView 登录官方页面(与 PiliPlus 相同的交互模式),完成滑动验证后自动捕获令牌并滚动续期(约 7 天),无需反复登录
- 生物识别保险库(Android / iOS / macOS):开启后,读取或保存登录密码都需先通过系统生物识别验证;绝不在启动时强制验证
- 自适应界面:≥1000px 导航栏(桌面)→ <600px 底部标签栏(手机),Material 3 + 中英双语
项目通过 fvm 锁定 Flutter 版本(见仓库根 .fvmrc,CI 同步读取该文件):
brew install fvm # 或 dart pub global activate fvm
fvm install # 安装 .fvmrc 锁定的 SDK
fvm flutter pub get
fvm flutter run -d macos # 或 -d windows / -d linux / android / ios之后所有 flutter / dart 命令一律加 fvm 前缀(如 fvm flutter test、fvm flutter build macos)。
| 平台 | 构建命令 | 验证状态 |
|---|---|---|
| macOS | flutter build macos |
已实测 |
| Android | flutter build apk --release |
已实测 |
| iOS | flutter build ios --no-codesign |
等待好心人 |
| Windows | flutter build windows |
已实测 |
| Linux | flutter build linux |
已实测Arch Linux打包版本 |
- 播放与令牌存储使用 Keychain,Debug 构建需要有效签名身份(Apple Development 证书 + 开发团队),否则会遇到 Keychain -34018 错误。无付费开发者账号时,可在 Xcode 中登录个人免费 Apple ID 并选择其 Development 证书。
- 应用已配置
keychain-access-groups为空数组以启用自定义签名下的 Keychain。
- 生物识别需要设备支持(无指纹/Face 的设备自动隐藏该开关)。
- minSdk 24(Android 7.0)以上。
仓库提供两条 GitHub Actions 工作流,推送合并进 main 后自动出全平台产物:
- desktop-build:macOS arm64(zip)/ Linux x64(deb + pacman)/ Windows x64(安装向导 exe),文件名含版本号
- android-build:Android APK(universal,可选拆分 ABI)
触发方式(两者一致):
- push 到 main:每次合入自动构建(仅
docs:类提交的推送跳过,省机器) - 发布正式 Release:产物自动挂到该 Release 的 Assets 下
- 手动触发:Actions → 对应工作流 → Run workflow(可指定附加到哪个 tag)
- Prerelease 不会自动触发任何构建,需要时手动 dispatch 并填
attach_tag
注意:CI 的 macOS 产物为 ad-hoc 签名(可正常打开),但 Keychain 条目不跨签名身份保留;如需凭据保险库长期可靠,请按上文本地签名构建。
本项目为个人学习研究用途的非官方客户端,与教育部"国家中小学智慧教育平台"及其运营方无任何关联。使用前请知悉:
- 非官方、非商业:本项目以 CC BY-NC-SA 4.0 发布,禁止任何商业使用。平台上的课程、教材等一切内容版权归原权利人所有,本项目不存储、不分发任何课程内容,仅在用户本人授权下代理访问其已有权限的资源。
- 用户协议:使用第三方客户端访问平台可能不符合平台用户协议的相关条款,由此产生的账号风险(如限制)由使用者自行承担。
- 数据安全:所有凭据仅保存在本机系统安全存储(Keychain / Keystore / Secure Storage)中,绝不上传。请勿在不可信设备上登录。
- 学习用途:本项目目的是修复官方网页端视频播放体验并方便离线学习个人已授权课程。请尊重平台与授课教师的劳动成果,不得录制、二次分发课程内容。
- 侵权处理:若本项目侵犯了任何权利人的合法权益,请提交 Issue,我们将在核实后第一时间处理。
- 免责声明:本项目按"现状"提供,不提供任何明示或默示的担保。使用者因使用本项目产生的任何直接或间接损失,项目贡献者不承担责任。
平台接口如有变更导致功能失效,本项目无义务保证及时修复。
- PiliPlus — 播放器选型(media_kit/mpv)与登录交互模式
- tchMaterial-parser(MIT)— 电子教材
.pkg内嵌 PDF 端点、ebook_mapping+ 目录树接口与多种资源详情端点的发现与整理
代码与文档以 CC BY-NC-SA 4.0 许可发布:署名 — 非商业性使用 — 相同方式共享。