2.9 KiB
2.9 KiB
修改 AddAgent.vue 使用 API 数据渲染 TTS 内容
目标
根据 demo.md 中的 API 数据格式,修改 AddAgent.vue 文件,使其能够从 API 获取语言和音色数据,并正确渲染到页面上。
分析
- 当前
AddAgent.vue中使用硬编码的availableLanguages和availableVoices数组 getTtsList函数已经调用了 API,但没有处理返回的数据- API 返回的数据包含语言列表和对应语言的音色列表
- 需要根据选择的语言动态更新可用的音色列表
修改方案
1. 修改数据结构
- 将
availableLanguages和availableVoices改为从 API 获取 - 添加
ttsData变量存储完整的 API 返回数据 - 添加
allVoices变量存储所有音色数据,便于根据语言过滤
2. 更新 getTtsList 函数
- 处理 API 返回的数据,格式化语言和音色列表
- 将语言列表转换为组件需要的格式(包含 code、name、flag)
- 将音色列表转换为组件需要的格式(包含 id、name、sampleUrl)
3. 修改语言选择逻辑
- 使用从 API 获取的语言列表替换硬编码列表
- 添加语言切换时的音色过滤逻辑
4. 修改音色选择逻辑
- 根据当前选择的语言动态过滤音色列表
- 确保音频播放功能使用 API 返回的
voice_demoURL
5. 优化音频播放功能
- 确保
playVoiceSample函数能够正确处理 API 返回的音色数据 - 保持音频播放器的原有功能不变
具体实现步骤
-
修改响应式变量定义:
- 删除硬编码的
availableLanguages和availableVoices数组 - 添加
ttsData、allVoices变量 - 修改
availableLanguages和availableVoices为计算属性
- 删除硬编码的
-
更新
getTtsList函数:- 处理 API 返回的数据
- 格式化语言列表,添加国旗图标
- 格式化音色列表,提取需要的字段
-
添加语言切换监听:
- 在
handleLanguageChange函数中添加音色过滤逻辑 - 确保切换语言时重置音色选择
- 在
-
更新模板渲染:
- 确保模板使用正确的变量名和字段名
- 确保音频播放器使用 API 返回的音频 URL
-
测试功能:
- 确保语言列表正确渲染
- 确保音色列表根据语言动态更新
- 确保音频播放功能正常工作
预期效果
- 页面加载时从 API 获取语言和音色数据
- 语言选择下拉框显示所有可用语言
- 音色选择下拉框根据当前语言显示对应的音色
- 点击"试听"按钮能够播放对应的音色示例
- 音频播放器能够正常控制播放/暂停、显示进度
注意事项
- 需要处理 API 返回的语言代码与当前代码中语言代码格式的差异(如 API 返回 "zh",当前使用 "zh-CN")
- 需要确保所有音色都有有效的
voice_demoURL - 需要处理 API 可能返回的错误情况
- 需要确保页面加载时的初始状态正确