{"id":28865518,"url":"https://github.com/mkdir700/echolab","last_synced_at":"2025-07-27T14:33:54.071Z","repository":{"id":297143555,"uuid":"989845365","full_name":"mkdir700/echolab","owner":"mkdir700","description":"EchoLab 是一款专为语言学习者设计的视频播放器，通过逐句精听的方式帮助用户高效学习外语。 EchoLab is a video player designed for language learners, helping users learn foreign languages efficiently through sentence-by-sentence intensive listening.","archived":false,"fork":false,"pushed_at":"2025-07-09T12:41:25.000Z","size":4681,"stargazers_count":4,"open_issues_count":27,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-10T00:32:57.091Z","etag":null,"topics":["english-learning","lang","player","speaker","study","video-player"],"latest_commit_sha":null,"homepage":"https://www.echolab.vip","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mkdir700.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-25T00:21:42.000Z","updated_at":"2025-06-19T23:09:50.000Z","dependencies_parsed_at":"2025-06-04T09:23:07.838Z","dependency_job_id":"4664a3aa-6614-4825-ae74-acfe5a61498a","html_url":"https://github.com/mkdir700/echolab","commit_stats":null,"previous_names":["mkdir700/echolab"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/mkdir700/echolab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkdir700%2Fecholab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkdir700%2Fecholab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkdir700%2Fecholab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkdir700%2Fecholab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mkdir700","download_url":"https://codeload.github.com/mkdir700/echolab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkdir700%2Fecholab/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267370643,"owners_count":24076461,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["english-learning","lang","player","speaker","study","video-player"],"created_at":"2025-06-20T10:13:30.418Z","updated_at":"2025-07-27T14:33:54.062Z","avatar_url":"https://github.com/mkdir700.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EchoLab - 逐句精听，逐步精进\n\n\u003cdiv align=\"center\"\u003e\n\n![EchoLab Logo](https://img.shields.io/badge/EchoLab-语言学习-blue?style=for-the-badge)\n\n**专业的视频语言学习工具**\n\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue?style=flat-square)](LICENSE)\n[![Electron](https://img.shields.io/badge/Electron-35+-blue?style=flat-square)](https://electronjs.org)\n[![React](https://img.shields.io/badge/React-19+-blue?style=flat-square)](https://reactjs.org)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.8+-blue?style=flat-square)](https://typescriptlang.org)\n\n[下载应用](#-安装) • [使用指南](#-使用指南) • [功能特性](#-功能特性) • [开发](#-开发)\n\n\u003c/div\u003e\n\n---\n\n## 📖 项目简介\n\nEchoLab 是一款专为语言学习者设计的视频播放器，通过**逐句精听**的方式帮助用户高效学习外语。无论是电影、电视剧、纪录片还是教学视频，EchoLab 都能让您的视频学习体验更加专业和高效。\n\n\u003e **⚠️ 开发状态说明**  \n\u003e 本软件目前处于 **早期开发阶段**，功能和界面可能会有所调整。我们正在积极开发和优化中，欢迎您的反馈和建议！\n\n## 📱 软件截图\n\n### 首页界面\n\n_清晰直观的首页设计，快速开始您的学习之旅_\n\n![首页.png](https://cdn.z2blog.com/utools/pic/1749827196647.png)\n\n### 播放页面\n\n_专业的逐句精听界面，专注高效的语言学习体验_\n\n![播放页.png](https://cdn.z2blog.com/utools/pic/1749827233129.png)\n\n## ✨ 功能特性\n\n### 🎯 核心功能\n\n- **逐句播放控制** - 一键跳转到上一句/下一句字幕\n- **自动暂停** - 每句字幕结束后自动暂停，便于消化理解\n- **单句循环** - 重复播放当前字幕句子，强化练习\n- **多语言字幕** - 同时显示原文和译文，支持双语学习\n\n### 📝 字幕功能\n\n- **多格式支持** - 兼容 SRT、VTT、ASS/SSA、JSON 格式\n- **智能解析** - 自动识别字幕编码和格式\n- **实时同步** - 字幕与视频完美同步显示\n- **自由定位** - 字幕位置可自由拖拽调整\n\n### 🎮 播放控制\n\n- **变速播放** - 0.25x 到 2.0x 多档速度调节\n- **精确跳转** - 10秒前进/后退，快速定位\n- **全屏模式** - 沉浸式学习体验\n- **快捷键操作** - 丰富的键盘快捷键支持\n\n### 📚 学习管理\n\n- **播放记录** - 自动保存观看进度和字幕数据\n- **文件管理** - 智能的最近播放列表\n- **进度恢复** - 重新打开时自动恢复上次播放位置\n\n## 🚀 安装\n\n### 系统要求\n\n- **Windows**: Windows 10/11 (64位)\n- **macOS**: macOS 10.15+ (支持 Intel 和 Apple Silicon)\n- **Linux**: Ubuntu 18.04+ 或其他主流发行版\n\n### 下载安装\n\n1. 前往 [Releases](../../releases) 页面\n2. 下载适合您系统的安装包\n3. 运行安装程序完成安装\n\n### 支持的视频格式\n\n- **常见格式**: MP4, AVI, MKV, MOV, WMV, FLV\n- **高清格式**: 支持 4K/1080P 高清视频\n- **音频格式**: 自动处理各种音频编码\n\n### 支持的字幕格式\n\n- **SRT** - 最常用的字幕格式\n- **VTT** - Web 标准字幕格式\n- **ASS/SSA** - 高级字幕格式，支持样式\n- **JSON** - 自定义 JSON 字幕格式\n\n## 📖 使用指南\n\n### 快速开始\n\n1. **添加视频**: 点击\"添加视频\"按钮选择本地视频文件\n2. **导入字幕**: 应用会自动检测同名字幕文件，或手动选择\n3. **开始学习**: 使用播放控制按钮进行逐句精听练习\n\n### 字幕操作\n\n- **自动检测**: 放置同名字幕文件在视频目录，自动导入\n- **手动导入**: 点击字幕按钮手动选择字幕文件\n- **显示模式**: 支持原文、译文、双语三种显示模式\n\n### 快捷键说明\n\n| 功能       | 快捷键   | 说明              |\n| ---------- | -------- | ----------------- |\n| 播放/暂停  | `空格键` | 切换播放状态      |\n| 上一句字幕 | `H`      | 跳转到上一句字幕  |\n| 下一句字幕 | `L`      | 跳转到下一句字幕  |\n| 调大音量   | `↑`      | 调大音量 10%      |\n| 调小音量   | `↓`      | 调小音量 10%      |\n| 后退10秒   | `←`      | 快速后退          |\n| 前进10秒   | `→`      | 快速前进          |\n| 单句循环   | `L`      | 开启/关闭单句循环 |\n| 自动暂停   | `P`      | 开启/关闭自动暂停 |\n| 全屏切换   | `F`      | 进入/退出全屏     |\n\n## 🛠 技术栈\n\n### 核心技术\n\n- **Electron** - 跨平台桌面应用框架\n- **React** - 现代化前端框架\n- **TypeScript** - 类型安全的开发体验\n- **Ant Design** - 专业的 UI 组件库\n\n## 💻 开发\n\n### 环境要求\n\n- **Node.js** 18.0+\n- **pnpm** 8.0+\n\n### 本地开发\n\n```bash\n# 克隆项目\ngit clone https://github.com/your-username/echolab.git\ncd echolab\n\n# 安装依赖\npnpm install\n\n# 启动开发服务器\npnpm dev\n```\n\n### 构建发布\n\n```bash\n# 构建应用\npnpm build\n\n# 打包 Windows 版本\npnpm build:win\n\n# 打包 macOS 版本\npnpm build:mac\n\n# 打包 Linux 版本\npnpm build:linux\n```\n\n### 测试\n\n```bash\n# 运行测试\npnpm test\n\n# 运行测试并生成覆盖率报告\npnpm test:coverage\n\n# 交互式测试界面\npnpm test:ui\n```\n\n## 📁 项目结构\n\n```\necholab/\n├── src/\n│   ├── main/           # 主进程代码\n│   │   ├── handlers/   # API 处理器\n│   │   └── window/     # 窗口管理\n│   ├── preload/        # 预加载脚本\n│   └── renderer/       # 渲染进程\n│       └── src/\n│           ├── components/  # React 组件\n│           ├── hooks/       # 自定义 Hooks\n│           ├── pages/       # 页面组件\n│           ├── contexts/    # React Context\n│           └── utils/       # 工具函数\n├── resources/          # 应用资源文件\n└── scripts/           # 构建脚本\n```\n\n## 🤝 贡献指南\n\n我们欢迎任何形式的贡献！\n\n1. Fork 本项目\n2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)\n3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)\n4. 推送到分支 (`git push origin feature/AmazingFeature`)\n5. 打开 Pull Request\n\n### 开发规范\n\n- 使用 TypeScript 进行开发\n- 遵循 ESLint 和 Prettier 规范\n- 编写单元测试覆盖新功能\n- 提交信息遵循 [Conventional Commits](https://conventionalcommits.org/)\n\n### Git 工作流程\n\n项目已配置自动化 Git Hooks，提交时会自动执行：\n\n- **代码检查**: ESLint 自动检查并修复代码问题\n- **代码格式化**: Prettier 统一代码风格\n\n详细说明请查看 [Git 工作流程指南](docs/git-workflow.md)\n\n## 📝 更新日志\n\n查看 [CHANGELOG.md](CHANGELOG.md) 了解详细的版本更新记录。\n\n## 📄 许可证\n\n本项目基于 [Apache License 2.0](LICENSE) 开源许可证发布。\n\n## 🙏 致谢\n\n感谢所有为这个项目做出贡献的开发者和用户！\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**如果这个项目对您有帮助，请给我们一个 ⭐️**\n\n[问题反馈](../../issues) • [功能建议](../../discussions) • [联系我们](mailto:mkdir700@gmail.com)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkdir700%2Fecholab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmkdir700%2Fecholab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkdir700%2Fecholab/lists"}