TmkTranslationSDK 各接口调用关系文档
总体关系
releaseChannel 后:保留 sdkInit 配置和对应模式的鉴权状态,但当前 room/channel 已释放,继续翻译需要重新 createTmkTranslationRoom、createTranslationChannel,然后再推音频。
destroy 后:全局配置和鉴权状态都会清空,继续使用必须从 sdkInit 重新开始。
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 调用关系

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/ Androidchannel.destroy:当前 channel 不可继续推音频,需要重新createTranslationChannel;在线通常也要确保 room 仍有效,否则重新createTmkTranslationRoom。 -
SDK.releaseChannel:明确回到“已初始化 + 已鉴权”的状态,需要重新建 room/channel。 -
SDK.destroy:回到未初始化状态,需要重新sdkInit -> verifyAuth(由调用方选择的模式) -> create...。
注意
- iOS 先不要调用
channel.start和channel.stop函数。 - 销毁通道调用
channel.destroy(iOS 为release)。 - 关闭房间调用
room.closeRoom。 - 销毁对话引擎调用
releaseChannel。 - 如果业务层需要暂停对话,只需停止推送音频即可:SDK 会把已传入的音频数据处理完后,自动不再回调相关结果;但仍会持续监听引擎状态,保证引擎存活。
- 长时间不推送音频,30 分钟后房间会被释放。
- 网络异常时,20 分钟内网络恢复会自动重连。