|
|
@@ -23,8 +23,9 @@
|
|
|
5. 提供完整的TypeScript类型定义
|
|
|
6. 确保现有stt-demo应用功能不受影响,保持向后兼容
|
|
|
7. **SDK必须能够进行实际的语音转文字操作**,集成真实Agora SDK功能
|
|
|
-8. **在主应用中新增SDK测试页面**,提供完整的SDK功能演示和测试环境
|
|
|
-9. **通过E2E测试验证SDK集成**,确保SDK在实际应用场景中正常工作
|
|
|
+8. **修复SDK初始化接口**:SDK配置需要同时接收appId和certificate,确保token生成功能正常工作
|
|
|
+9. **在主应用中新增SDK测试页面**,提供完整的SDK功能演示和测试环境
|
|
|
+10. **通过E2E测试验证SDK集成**,确保SDK在实际应用场景中正常工作
|
|
|
|
|
|
## Tasks / Subtasks
|
|
|
|
|
|
@@ -62,10 +63,18 @@
|
|
|
- [x] **验证SDK能够进行实际的语音转文字操作**(单元测试验证通过)
|
|
|
- [x] 测试多语言转录和翻译功能
|
|
|
- [ ] 运行Playwright E2E测试验证回归(主应用暂未集成SDK)
|
|
|
-- [ ] Task 8: **主应用集成SDK测试页面** (AC: 8,9)
|
|
|
+- [ ] Task 8: **修复SDK初始化接口** (AC: 8)
|
|
|
+ - [ ] 更新SttSdkConfig接口,添加certificate必填字段
|
|
|
+ - [ ] 修改SttSdk.initialize方法,接收并存储certificate
|
|
|
+ - [ ] 更新SttManagerAdapter构造函数,接收必填的appId和certificate参数
|
|
|
+ - [ ] 修复\_apiGetAgoraToken方法,使用正确的certificate生成token
|
|
|
+ - [ ] 更新相关类型定义文件
|
|
|
+ - [ ] 编写单元测试验证certificate配置功能
|
|
|
+ - [ ] 添加参数验证,确保appId和certificate不为空
|
|
|
+- [ ] Task 9: **主应用集成SDK测试页面** (AC: 9,10)
|
|
|
- [ ] 在src/pages/目录下创建sdk-test页面
|
|
|
- [ ] 创建sdk-test/index.tsx页面组件
|
|
|
- - [ ] 实现SDK初始化界面:App ID输入、Token配置
|
|
|
+ - [ ] 实现SDK初始化界面:App ID和Certificate输入、Token配置
|
|
|
- [ ] 添加连接状态显示和连接/断开按钮
|
|
|
- [ ] 实现转录功能控制:开始/停止转录按钮
|
|
|
- [ ] 添加实时转录结果显示区域,支持多语言显示
|
|
|
@@ -77,7 +86,7 @@
|
|
|
- [ ] 更新路由配置,确保/sdk-test路径可访问
|
|
|
- [ ] 编写Playwright E2E测试验证SDK功能
|
|
|
- [ ] 创建e2e/sdk-test.spec.ts测试文件
|
|
|
- - [ ] 测试SDK初始化流程:输入App ID、连接成功
|
|
|
+ - [ ] 测试SDK初始化流程:输入App ID和Certificate、连接成功
|
|
|
- [ ] 测试转录功能:开始转录、接收转录结果
|
|
|
- [ ] 测试多语言支持:切换语言、验证转录结果
|
|
|
- [ ] 测试错误处理:无效配置、连接失败场景
|
|
|
@@ -157,10 +166,11 @@
|
|
|
// 在sdk-test页面中集成SDK
|
|
|
import { createSttSdk } from "@stt-demo/stt-sdk-core"
|
|
|
|
|
|
-// SDK初始化配置
|
|
|
+// SDK初始化配置(appId和certificate为必填)
|
|
|
const sdkConfig = {
|
|
|
appId: "your-app-id",
|
|
|
- token: "your-token",
|
|
|
+ certificate: "your-certificate", // 必填字段
|
|
|
+ token: "your-token", // 可选字段
|
|
|
}
|
|
|
|
|
|
// 创建SDK实例
|
|
|
@@ -191,6 +201,51 @@ const routerItems = [
|
|
|
]
|
|
|
```
|
|
|
|
|
|
+### CERTIFICATE修复说明
|
|
|
+
|
|
|
+**问题分析**:
|
|
|
+
|
|
|
+- 当前SDK初始化只接收appId,但token生成需要appCertificate
|
|
|
+- \_apiGetAgoraToken方法中appCertificate字段为空字符串,无法生成有效token
|
|
|
+- 需要更新SDK配置接口以支持certificate参数
|
|
|
+
|
|
|
+**修复方案**:
|
|
|
+
|
|
|
+```typescript
|
|
|
+// 更新SttSdkConfig接口
|
|
|
+export interface SttSdkConfig {
|
|
|
+ appId: string
|
|
|
+ certificate: string // 新增必填字段
|
|
|
+ token?: string
|
|
|
+ logLevel?: 'debug' | 'info' | 'warn' | 'error'
|
|
|
+}
|
|
|
+
|
|
|
+// 更新SttManagerAdapter构造函数
|
|
|
+constructor(rtmManager?: any, appId: string, certificate: string) { // 改为必填参数
|
|
|
+ super()
|
|
|
+ this._rtmManager = rtmManager
|
|
|
+ this._appId = appId // 直接赋值,不再检查
|
|
|
+ this._certificate = certificate // 直接赋值,不再检查
|
|
|
+}
|
|
|
+
|
|
|
+// 修复_apiGetAgoraToken方法
|
|
|
+private async _apiGetAgoraToken(config: {
|
|
|
+ uid: string | number
|
|
|
+ channel: string
|
|
|
+}): Promise<string | null> {
|
|
|
+ const data = {
|
|
|
+ appId: this._appId,
|
|
|
+ appCertificate: this._certificate, // 使用正确的certificate
|
|
|
+ channelName: channel,
|
|
|
+ expire: 7200,
|
|
|
+ src: 'web',
|
|
|
+ types: [1, 2],
|
|
|
+ uid: uid.toString(),
|
|
|
+ }
|
|
|
+ // ... 其他代码保持不变
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
## Testing
|
|
|
|
|
|
### 测试策略 [Source: architecture/testing-strategy.md]
|
|
|
@@ -262,6 +317,7 @@ export const testLanguages = ["zh-CN", "en-US", "ja-JP"]
|
|
|
| 2025-09-25 | 1.6 | **完成真实功能集成**:重新实现管理器适配器类,集成真实Agora SDK功能,修复所有测试 | Claude Code |
|
|
|
| 2025-09-25 | 1.7 | **更新故事状态**:添加主应用集成SDK测试页面需求,将状态改为进行中 | Bob (SM) |
|
|
|
| 2025-09-25 | 1.8 | **完善实施细节**:根据PO建议细化Task 8任务、添加SDK集成示例和E2E测试场景 | Bob (SM) |
|
|
|
+| 2025-09-25 | 1.9 | **修复SDK初始化问题**:添加CERTIFICATE支持,修复token生成功能 | Bob (SM) |
|
|
|
|
|
|
## Dev Agent Record
|
|
|
|