2
0
Эх сурвалжийг харах

✨ feat(stt): 重构STT管理器初始化流程,增加RTM管理器依赖

- 修改createSttManager方法,要求必须传入rtmManager参数
- 新增参数验证,当rtmManager不存在时抛出INVALID_CONFIG错误
- 更新ISttSdk接口定义,反映createSttManager方法的参数变化

🔧 chore(test): 优化SDK测试页面流程

- 移除单独的"加入RTM频道"步骤,整合到STT管理器初始化流程中
- 删除isRtmManagerJoined状态变量及相关UI元素
- 更新测试日志,明确STT管理器初始化已包含RTM频道加入
- 调整STT管理器初始化按钮文本说明,反映流程变更
yourname 2 сар өмнө
parent
commit
86a7b94d55

+ 10 - 2
packages/stt-sdk-core/src/core/stt-sdk.ts

@@ -58,12 +58,20 @@ export class SttSdk
     }
   }
 
-  createSttManager(): ISttManagerAdapter {
+  createSttManager(rtmManager: IRtmManagerAdapter): ISttManagerAdapter {
     if (!this._initialized) {
       throw new SttError('NOT_INITIALIZED', 'SDK must be initialized before creating managers')
     }
 
-    const manager = new SttManagerAdapter(undefined, this._config!.appId, this._config!.certificate)
+    if (!rtmManager) {
+      throw new SttError('INVALID_CONFIG', 'RTM manager is required for STT manager')
+    }
+
+    const manager = new SttManagerAdapter(
+      rtmManager,
+      this._config!.appId,
+      this._config!.certificate
+    )
     this._sttManagers.add(manager)
 
     // 监听管理器错误事件并转发

+ 1 - 1
packages/stt-sdk-core/src/types/index.ts

@@ -122,7 +122,7 @@ export interface RtmChannelMetadata {
 // SDK 主类接口
 export interface ISttSdk {
   initialize(config: SttSdkConfig): Promise<void>
-  createSttManager(): ISttManagerAdapter
+  createSttManager(rtmManager: IRtmManagerAdapter): ISttManagerAdapter
   createRtmManager(): IRtmManagerAdapter
   destroy(): Promise<void>
   isInitialized: boolean

+ 4 - 37
src/pages/sdk-test/index.tsx

@@ -27,7 +27,6 @@ const SdkTestPage = () => {
   const [rtmManager, setRtmManager] = useState<IRtmManagerAdapter | null>(null)
   const [isSdkInitialized, setIsSdkInitialized] = useState(false)
   const [isSttManagerInitialized, setIsSttManagerInitialized] = useState(false)
-  const [isRtmManagerJoined, setIsRtmManagerJoined] = useState(false)
   const [isTranscriptionActive, setIsTranscriptionActive] = useState(false)
   const [transcriptionStatus, setTranscriptionStatus] = useState<string>("idle")
   const [testResults, setTestResults] = useState<string[]>([])
@@ -75,9 +74,9 @@ const SdkTestPage = () => {
       setIsSdkInitialized(true)
       addTestLog("✅ SDK初始化成功")
 
-      // 创建管理器
-      const sttManager = newSdk.createSttManager()
+      // 创建管理器 - 先创建RTM管理器,然后创建STT管理器并传入RTM管理器
       const rtmManager = newSdk.createRtmManager()
+      const sttManager = newSdk.createSttManager(rtmManager)
 
       // 监听RTM管理器的事件
       rtmManager.on("sttDataChanged", onSttDataChanged)
@@ -93,7 +92,7 @@ const SdkTestPage = () => {
     }
   }
 
-  // 初始化STT管理器
+  // 初始化STT管理器(会自动加入RTM频道)
   const initializeSttManager = async () => {
     if (!sttManager || !form) return
 
@@ -108,7 +107,7 @@ const SdkTestPage = () => {
       })
 
       setIsSttManagerInitialized(true)
-      addTestLog("✅ STT管理器初始化成功")
+      addTestLog("✅ STT管理器初始化成功(已自动加入RTM频道)")
       messageApi.success("STT管理器初始化成功")
     } catch (error) {
       addTestLog(`❌ STT管理器初始化失败: ${error}`)
@@ -116,29 +115,6 @@ const SdkTestPage = () => {
     }
   }
 
-  // 加入RTM频道
-  const joinRtmChannel = async () => {
-    if (!rtmManager || !form) return
-
-    try {
-      const values = form.getFieldsValue()
-      addTestLog("开始加入RTM频道...")
-
-      await rtmManager.join({
-        channel: values.channel,
-        userId: genRandomUserId().toString(),
-        userName: values.userName,
-      })
-
-      setIsRtmManagerJoined(true)
-      addTestLog("✅ RTM频道加入成功")
-      messageApi.success("RTM频道加入成功")
-    } catch (error) {
-      addTestLog(`❌ RTM频道加入失败: ${error}`)
-      messageApi.error(`RTM频道加入失败: ${error}`)
-    }
-  }
-
   // 开始转录
   const startTranscription = async () => {
     if (!sttManager) return
@@ -219,7 +195,6 @@ const SdkTestPage = () => {
         rtmManager.off("sttDataChanged", onSttDataChanged)
         await rtmManager.destroy()
         setRtmManager(null)
-        setIsRtmManagerJoined(false)
       }
 
       if (sdk) {
@@ -333,14 +308,6 @@ const SdkTestPage = () => {
                 {isSttManagerInitialized ? "✅ STT管理器已初始化" : "初始化STT管理器"}
               </Button>
 
-              <Button
-                onClick={joinRtmChannel}
-                disabled={!isSdkInitialized || isRtmManagerJoined}
-                block
-              >
-                {isRtmManagerJoined ? "✅ RTM频道已加入" : "加入RTM频道"}
-              </Button>
-
               <Divider />
 
               <Button