{ "project_name": "AI有声书播放器优化", "base_config": { "backend_port": 3000, "frontend_port": 5173, "db_host": "localhost", "db_port": 3306, "auth_enabled": false }, "features": [ { "id": 1, "description": "播放器 - 封面旋转动画", "backend_test_steps": [], "frontend_test_steps": [ "1. 打开播放器页面", "2. 验证封面显示在中央", "3. 点击播放按钮", "4. 验证封面向右旋转(播放时)", "5. 点击暂停按钮", "6. 验证封面停止旋转(暂停时)" ], "status": "done", "passes": true }, { "id": 2, "description": "播放器 - 播放控制(上一首/下一首/播放暂停)", "backend_test_steps": [], "frontend_test_steps": [ "1. 打开有多个音频的专辑", "2. 点击播放按钮,验证开始播放", "3. 点击下一首按钮,验证切换到下一首", "4. 点击上一首按钮,验证切换到上一首", "5. 验证播放器状态正确更新" ], "status": "done", "passes": true }, { "id": 3, "description": "播放器 - 进度条拖动", "backend_test_steps": [], "frontend_test_steps": [ "1. 打开播放器页面并开始播放", "2. 验证进度条显示当前播放位置", "3. 拖动进度条到中间位置", "4. 验证播放位置跳转到对应时间", "5. 验证时间显示同步更新" ], "status": "done", "passes": true }, { "id": 4, "description": "播放器 - 播放列表展示", "backend_test_steps": [], "frontend_test_steps": [ "1. 进入专辑详情页", "2. 点击播放全部", "3. 验证播放器显示当前播放列表", "4. 验证当前播放音频高亮显示", "5. 验证列表显示专辑内所有音频" ], "status": "done", "passes": true }, { "id": 5, "description": "播放器 - 循环模式(列表循环/单曲循环)", "backend_test_steps": [], "frontend_test_steps": [ "1. 打开有多个音频的专辑", "2. 点击播放全部", "3. 点击循环按钮切换模式", "4. 验证模式切换:列表循环 → 单曲循环 → 关闭", "5. 播放到最后一首时,验证列表循环回到第一首" ], "status": "done", "passes": true }, { "id": 6, "description": "播放器 - 随机播放", "backend_test_steps": [], "frontend_test_steps": [ "1. 打开有多个音频的专辑", "2. 点击随机播放按钮", "3. 验证随机播放模式开启", "4. 点击下一首,验证随机跳转到非连续音频", "5. 再次点击随机按钮,关闭随机模式" ], "status": "done", "passes": true }, { "id": 7, "description": "播放器 - 播放速度控制", "backend_test_steps": [], "frontend_test_steps": [ "1. 打开播放器页面", "2. 点击播放速度按钮", "3. 选择1.5x速度", "4. 验证音频以1.5倍速播放", "5. 刷新页面,验证速度设置已保存" ], "status": "done", "passes": true }, { "id": 8, "description": "播放器 - 收藏功能", "backend_test_steps": [], "frontend_test_steps": [ "1. 打开播放器页面", "2. 点击收藏按钮(空心心形)", "3. 验证按钮变为已收藏状态(实心心形)", "4. 进入收藏页面", "5. 验证当前音频显示在收藏列表中", "6. 点击取消收藏,验证从列表移除" ], "status": "done", "passes": true }, { "id": 9, "description": "播放器 - 定时关闭", "backend_test_steps": [], "frontend_test_steps": [ "1. 打开播放器页面并开始播放", "2. 点击定时关闭按钮", "3. 选择15分钟", "4. 验证倒计时显示正确", "5. 等待或快进到定时时间", "6. 验证播放自动暂停" ], "status": "done", "passes": true }, { "id": 10, "description": "播放器 - 毛玻璃背景效果", "backend_test_steps": [], "frontend_test_steps": [ "1. 打开播放器页面", "2. 验证页面背景有模糊效果", "3. 播放音频时,验证背景随封面色调变化", "4. 切换不同音频,验证背景随之变化" ], "status": "done", "passes": true }, { "id": 11, "description": "播放器 - 播放列表折叠/展开", "backend_test_steps": [], "frontend_test_steps": [ "1. 打开播放器页面", "2. 验证播放列表默认收起", "3. 点击展开按钮", "4. 验证播放列表展开显示所有音频", "5. 点击收起按钮", "6. 验证播放列表收起" ], "status": "done", "passes": true }, { "id": 12, "description": "播放器 - 按钮点击动画", "backend_test_steps": [], "frontend_test_steps": [ "1. 打开播放器页面", "2. 点击播放/暂停按钮", "3. 验证按钮有缩放动画反馈", "4. 点击上一首/下一首按钮", "5. 验证按钮有缩放动画反馈" ], "status": "done", "passes": true }, { "id": 13, "description": "播放器 - 专辑信息展示优化", "backend_test_steps": [], "frontend_test_steps": [ "1. 进入专辑详情页", "2. 点击播放某个音频", "3. 验证播放器显示专辑名称", "4. 验证显示当前集数/总集数(如 2/10)", "5. 切换上下首,验证集数正确更新" ], "status": "done", "passes": true }, { "id": 14, "description": "播放器 - 智能续播提示", "backend_test_steps": [], "frontend_test_steps": [ "1. 播放某个音频一段时间后关闭页面", "2. 重新打开该音频", "3. 验证弹出续播提示", "4. 点击继续播放", "5. 验证从上次位置继续播放" ], "status": "done", "passes": true }, { "id": 15, "description": "播放器 - 自动播放下一首", "backend_test_steps": [], "frontend_test_steps": [ "1. 打开有多个音频的专辑", "2. 点击播放全部", "3. 等待当前音频播放完毕", "4. 验证自动跳转到下一首播放", "5. 验证播放器UI同步更新" ], "status": "done", "passes": true } ] }