122 lines
2.8 KiB
Markdown
122 lines
2.8 KiB
Markdown
# 测试音乐库唱歌功能
|
||
|
||
## ✅ 修复完成
|
||
|
||
前端代码已修复,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
|
||
**状态**: ✅ 可以开始测试
|
||
|