Skip to main content
Version: v1.3.2

TmkTranslationSDK 各接口调用关系文档

总体关系​

releaseChannel 后:保留 sdkInit 配置和对应模式的鉴权状态,但当前 room/channel 已释放,继续翻译需要重新 createTmkTranslationRoom、createTranslationChannel,然后再推音频。

destroy 后:全局配置和鉴权状态都会清空,继续使用必须从 sdkInit 重新开始。

iOS 调用关系​

iOS 接口调用关系图

在线典型链路:

sdkInit
-> verifyAuth(mode, callback)
-> createTmkTranslationRoom
-> createTranslationChannel(listener)
-> SDK 内部 newChannel.start(...)
-> pushStreamAudioData
-> stop / room.closeRoom / releaseChannel / destroy

关键点:

  • sdkInit 只保存全局配置并初始化日志,不等于鉴权完成,见 TmkTranslationSDK.swift。

  • verifyAuth(mode, callback) 会准备鉴权基础设施并按所选模式执行鉴权;调用方根据实际业务选择 default、online、offline 或 all,SDK 不会根据收听或一对一场景自动映射模式,见 TmkTranslationSDK.swift。

  • createTmkTranslationRoom 会创建/准备在线 dialog,成功后返回 room,见 TmkTranslationSDK+RoomChannel.swift。

  • createTranslationChannel 会在内部调用 newChannel.start,成功后替换 SDK 当前 channel,见 TmkTranslationSDK+RoomChannel.swift。

  • setTranslationListener 只是替换 arena 回调,见 TmkTranslationChannel.swift。

  • pushStreamAudioData 会在 channel 未 release 时直接推给 engine,见 TmkTranslationChannel.swift。

  • releaseChannel 会释放 channel、取消 pending room、关闭服务端房间、清 workflow/telemetry,但保留全局配置和鉴权结果,见 TmkTranslationSDK+RoomChannel.swift。

  • destroy 先调用 releaseChannel,再清空 globalConfig、auth 状态并停网络监听,见 TmkTranslationSDK+RoomChannel.swift。

Android 调用关系​

Android 接口调用关系图

sdkInit
-> verifyAuth(mode, callback)
-> createTmkTranslationRoom
-> createTranslationChannel(context, config, listener, callback)
-> SDK 先绑定 listener,再内部 start
-> pushStreamAudioData
-> channel.destroy
-> SDK.releaseChannel
-> SDK.destroy

关键点:

  • sdkInit 会设置 isInitialized=true,重建 SDK scope,并重置 auth 状态,见 TmkTranslationSDK.kt。

  • verifyAuth(mode, callback) 要求已初始化,并初始化存储/诊断/网络监听;mode 由调用方按实际业务选择,具体差异见 Android 初始化与鉴权,见 TmkTranslationSDK.kt。

  • createTmkTranslationRoom(config) 成功后会保存 currentRoom;如已有 room/channel,会先 releaseChannel,见 TmkTranslationSDK.kt。

  • 推荐使用带 listener 的 createTranslationChannel(context, config, listener, callback);SDK 会先绑定 listener 再启动通道,回调成功时即可推流。

  • pushStreamAudioData 只有在 isStarted 且状态允许推流时才进入 engine,见 TmkTranslationChannel.kt。

  • releaseChannel 会销毁当前 channel、清 currentRoom、关闭服务端 room,并释放 telemetry;但不清 globalConfig/isInitialized/auth,见 TmkTranslationSDK.kt。

  • destroy 会先 releaseChannel,再销毁所有 channel、停网络、取消 scope、清 auth 和 globalConfig,最后 isInitialized=false,见 TmkTranslationSDK.kt。

释放后的重建规则​

  • room.closeRoom:iOS 有公开 room.closeRoom;它关闭服务端房间,不等价于释放 channel。关闭后在线会话应按新房间重建。

  • channel.release / Android channel.destroy:当前 channel 不可继续推音频,需要重新 createTranslationChannel;在线通常也要确保 room 仍有效,否则重新 createTmkTranslationRoom。

  • SDK.releaseChannel:明确回到“已初始化 + 已鉴权”的状态,需要重新建 room/channel。

  • SDK.destroy:回到未初始化状态,需要重新 sdkInit -> verifyAuth(由调用方选择的模式) -> create...。

注意​

  1. iOS 先不要调用 channel.start 和 channel.stop 函数。
  2. 销毁通道调用 channel.destroy(iOS 为 release)。
  3. 关闭房间调用 room.closeRoom。
  4. 销毁对话引擎调用 releaseChannel。
  5. 如果业务层需要暂停对话,只需停止推送音频即可:SDK 会把已传入的音频数据处理完后,自动不再回调相关结果;但仍会持续监听引擎状态,保证引擎存活。
  6. 长时间不推送音频,30 分钟后房间会被释放。
  7. 网络异常时,20 分钟内网络恢复会自动重连。