生命周期与工具
资源释放与生命周期
TmkTranslationChannel.destroy()
停止通道、释放底层资源、清除 listener,并从全局通道集合中移除。该方法只作用于单个通道对象;页面退出、切换模式、切换房间或切换语言对时,建议使用 TmkTranslationSDK.releaseChannel() 作为会话级释放入口。
TmkTranslationSDK.releaseChannel()
释放当前翻译通道和当前会话相关资源:
fun releaseChannel()
行为说明:
-
停止并销毁当前通道,清空当前房间引用。
-
如果当前在线房间已创建成功,SDK 会异步调用关房流程,避免服务端遗留预建房间。
-
不会清空
sdkInit(context, config)的全局配置,也不会清空鉴权状态。 -
释放后可以直接重新创建房间与通道。
- 页面退出、切换模式、切换房间或切换语言对时,优先调用
TmkTranslationSDK.releaseChannel()。 - 调用
releaseChannel()后,业务侧不需要再对同一房间重复触发关房。
TmkTranslationSDK.destroy()
释放 SDK 全局资源:
fun destroy()
行为说明:
-
销毁当前所有
TmkTranslationChannel。 -
释放在线共享资源和埋点会话。
-
清空全局配置并重置初始化状态。
-
后续如需继续使用,必须重新调用
sdkInit(context, config)和verifyAuth(callback)。
可取消请求句柄
Cancelable
updateSpeaker(...) 返回 Cancelable:
interface Cancelable {
val isCanceled: Boolean
fun cancel()
}
取消只影响尚未执行或尚未回调的任务,已生效的音色设置不会回滚。REQUEST_CANCELLED 属于主动取消类错误,业务侧不应弹 fatal 错误框。
PCM 工具与音频要求
SDK 接收业务侧推送的 PCM:
-
格式:16-bit little-endian PCM
-
推荐采样率:16000
-
收听模式:单声道
-
一对一模式:双声道交织数据
-
推荐帧长:约 20ms
业务侧需要保证录音器输出与 TmkTransChannelConfig 中的 sampleRate、channelNum 一致。
诊断能力
Android 当前通过 TmkTransGlobalConfig 的诊断开关控制日志:
| 配置 | 说明 |
|---|---|
setDiagnosisEnabled(enabled) | 是否启用 SDK 诊断日志 |
setDiagnosisConsoleEnabled(enabled) | 是否同步输出诊断日志到控制台 |
诊断日志可用于排查鉴权、建房、建通道、离线模型、在线 RTC/RTM 和离线 pipeline 问题。上传诊断日志前需要完成用户授权、脱敏和访问控制,不应记录或上传原始 License、clientSecret、设备私钥或完整用户隐私数据。