新增: 功能路线图 + 9份需求契约

- feature-roadmap.md: 现有能力盘点 + P1/P2/P3方向 + 竞品参考
- AI深度视差: 远程推理方案(服务端Depth-Anything + 客户端WebGL)
- 自动升级模块文档: 设计规格/任务规划/决策记录
- 9份需求契约: 视频/颜色提取/时间段/番茄钟/播放列表/电池/网页/便签/监控
This commit is contained in:
2026-05-28 19:06:39 +08:00
parent f5a473c4b8
commit cd7247d880
19 changed files with 1044 additions and 33 deletions

View File

@@ -0,0 +1,59 @@
# 视频壁纸 — 需求契约
> 创建时间2026-05-28
> 状态:需求已确认
## 目标
支持将视频文件mp4/WebM/GIF设为桌面壁纸WebView2 `<video>` 标签播放。
## 用户场景
1. 用户在设置页选择"视频壁纸",弹出文件选择对话框(过滤 mp4/WebM/GIF
2. 选中视频后,桌面壁纸立即切换为视频循环播放
3. 视频静音播放,不干扰用户工作
4. 全屏应用(游戏/视频播放器)时自动暂停,退出全屏后恢复
## 验收标准
- [ ] 支持 mp4、WebM、GIF 格式
- [ ] 视频循环播放,无黑帧闪烁
- [ ] 默认静音,设置页可选开启声音
- [ ] 全屏应用时暂停视频,退出恢复
- [ ] 视频文件路径持久化,重启后恢复
- [ ] 视频填充方式cover默认不拉伸变形
- [ ] 设置页可预览当前视频壁纸
## 本次范围
- 本地视频文件作为壁纸
- 视频播放控制(静音/循环/暂停恢复)
## 非目标
- 在线视频 URL 播放(属于"网页壁纸"方向)
- 视频编辑/裁剪
- 多显示器不同视频
## 约束
- WebView2 `<video>` 原生能力,不引入额外播放器库
- 视频文件不嵌入 exe用户自行管理文件路径
- 大视频文件(>500MB需考虑内存占用不做完整 dataURI 转换,用文件 URL
- 复用现有壁纸类型切换架构(`saveWallpaperType`
## 风险
| 风险 | 缓解 |
|------|------|
| 大视频内存占用 | 不转 dataURI`file:///` 协议加载 |
| WebView2 视频解码兼容性 | 测试 H.264/VP9 编码,不支持的格式提示用户 |
| 视频切换时闪烁 | 预加载下一帧CSS transition 淡入 |
## 技术方案
- `wallpaper.go` 新增壁纸类型 `video`
- 视频 HTML 模板:全屏 `<video>` 标签autoplay/loop/muted/cover
- `config.go` 新增 `VideoPath string` 字段
- `settings.go` 新增 `pickVideoFile` 函数(复用文件对话框,过滤视频格式)
- 前端设置页 WallpaperSection 新增"视频壁纸"选项