为 QQ 音乐、网易云音乐等网页版播放器提供桌面悬浮歌词窗口(跨平台:Windows + Linux)。
浏览器扩展(Manifest V3)解析网页播放器的播放状态与歌词,通过 localhost
WebSocket / REST 与 C#(.NET 8)后端通信;后端解析 LRC 歌词,由 Avalonia
透明悬浮窗随播放进度逐行高亮显示。当前处于骨架阶段,MVP 计划见
docs/MVP_PLAN.md。
LyricFloat/
├── docs/ # 设计文档(PROJECT_PLAN / MVP_PLAN / AGENTS)
├── extension/ # 浏览器扩展(MV3,ESM + web-ext)
├── server/ # C# 后端(.NET 8 解决方案)
│ ├── LyricFloat.sln
│ ├── src/
│ │ ├── LyricFloat.Core/ # 模型、LRC 解析、同步引擎、配置
│ │ ├── LyricFloat.Server/ # Kestrel 宿主、WebSocket / REST
│ │ └── LyricFloat.UI/ # Avalonia 透明悬浮窗(宿主 exe)
│ └── tests/
│ └── LyricFloat.Tests/ # xUnit
├── scripts/ # 构建 / 打包脚本(计划清单)
└── global.json # 锁定 .NET SDK 8.0.422
| 模块 | 说明 |
|---|---|
LyricFloat.Core |
播放状态 / 歌词模型、LRC 解析、同步引擎、配置管理 |
LyricFloat.Server |
ASP.NET Core(Kestrel)本地宿主,WebSocket + REST |
LyricFloat.UI |
Avalonia 透明无边框置顶悬浮窗 |
extension/ |
MV3 扩展:内容脚本适配器 + 后台 Service Worker |
- .NET SDK 8(
global.json锁定 8.0.422;构建需要 ≥ 8.0.400) - Node.js 20+(可选,仅扩展开发工具
web-ext需要) - 浏览器:Chrome / Edge / Firefox
# 构建 + 测试
dotnet build server/LyricFloat.sln
dotnet test server/LyricFloat.sln
# 运行后端 + 悬浮窗
dotnet run --project server/src/LyricFloat.UI
# 扩展:安装依赖并校验 manifest
cd extension && npm install && npm run lint
# 浏览器 → chrome://extensions → 开发者模式 → 加载已解压的扩展程序 → 选择 extension/