# 测试音乐库唱歌功能 ## ✅ 修复完成 前端代码已修复,API 参数传递问题已解决。 --- ## 🧪 测试步骤 ### 1. 启动后端服务 双击运行:`启动后端服务.bat` 等待看到: ``` INFO: Uvicorn running on http://0.0.0.0:30101 INFO: Application startup complete. ``` ### 2. 验证 API 打开浏览器访问:http://localhost:30101/docs 找到 `POST /music/convert-to-song`,应该能看到: - 参数:`music_id` (query, required, integer) ### 3. 重新编译前端 保存 `xuniYou/pages/index/index.vue` 后,重新编译前端项目。 ### 4. 测试功能 #### 测试场景 1:直链音乐(应该成功) 1. 打开应用,进入音乐库 2. 点击任意 Bensound 音乐(直链音乐) 3. 应该弹出确认框:"确定让她唱《xxx》吗?" 4. 点击"确定" 5. 应该显示"准备中..." → "生成中..." 6. 生成完成后自动切换到"历史记录" tab 7. 视频自动播放 #### 测试场景 2:外部链接音乐(应该提示) 1. 点击外部平台音乐(网易云、QQ音乐) 2. 应该弹出提示:"外部平台音乐无法生成视频,请使用直链或上传的音乐" #### 测试场景 3:重复生成(应该使用缓存) 1. 再次点击相同的音乐 2. 应该立即成功(不需要等待生成) 3. 直接显示"生成成功"并播放视频 --- ## 🐛 已修复的问题 ### 问题:API 参数传递错误 **错误日志**: ``` fastapi.exceptions.RequestValidationError: 1 validation error: {'type': 'missing', 'loc': ('query', 'music_id'), 'msg': 'Field required', 'input': None} ``` **原因**: - 后端定义:`music_id: int`(query 参数) - 前端发送:`data: { music_id: music.id }`(body 参数) **解决**: 修改前端为:`url: baseURLPy + '/music/convert-to-song?music_id=' + music.id` --- ## 📊 预期结果 ### 成功的请求日志 ``` INFO: POST /music/convert-to-song?music_id=1 HTTP/1.1" 200 OK INFO: POST /sing/generate HTTP/1.1" 200 OK ``` ### 成功的响应 ```json { "code": 1, "message": "success", "data": { "song_id": 123, "status": "succeeded", "video_url": "https://..." } } ``` --- ## 🔍 调试技巧 ### 查看后端日志 后端服务会输出详细日志,包括: - 请求 URL 和参数 - 数据库查询 - 错误信息 ### 查看前端日志 按 F12 打开浏览器开发者工具: - **Console** 标签:查看 JavaScript 错误 - **Network** 标签:查看 API 请求和响应 ### 常见问题 1. **422 错误**:参数传递错误(已修复) 2. **401 错误**:TOKEN 过期,需要重新登录 3. **404 错误**:API 路径错误或后端服务未启动 4. **500 错误**:后端服务异常,查看后端日志 --- **测试说明版本**: 1.0 **创建时间**: 2026-02-04 18:15 **状态**: ✅ 可以开始测试