[2.13.0][fix]解决首次安装Tts不生效的问题
原因:首次安装sn没有缓存到sp,然后Tts初始化时机比从后台获取要靠前
This commit is contained in:
@@ -18,6 +18,8 @@ import com.zhjt.mogo_core_function_devatools.monitor.MonitorManager
|
||||
import com.zhjt.mogo_core_function_devatools.scene.SceneManager.Companion.sceneManager
|
||||
import com.zhjt.mogo_core_function_devatools.status.*
|
||||
import com.zhjt.mogo_core_function_devatools.trace.TraceManager.Companion.traceManager
|
||||
import com.zhjt.mogo_core_function_devatools.tts.TtsManager
|
||||
import com.zhjt.mogo_core_function_devatools.tts.TtsManager.Companion.ttsManager
|
||||
import com.zhjt.mogo_core_function_devatools.upgrade.UpgradeManager.Companion.upgradeManager
|
||||
import record_cache.RecordPanelOuterClass
|
||||
|
||||
@@ -35,6 +37,7 @@ class DevaToolsProvider : IDevaToolsProvider {
|
||||
}
|
||||
|
||||
override fun initBiz() {
|
||||
ttsManager.initTts(mContext!!)
|
||||
traceManager.init(mContext!!)
|
||||
bizConfigCenter.init(mContext!!)
|
||||
FuncConfigImpl.init()
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.zhjt.mogo_core_function_devatools.tts
|
||||
|
||||
import android.content.Context
|
||||
import com.elegant.utils.storage.SharedPrefsMgr
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.voice.AIAssist
|
||||
import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener
|
||||
import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.zhjt.mogo_core_function_devatools.trace.TraceManager
|
||||
|
||||
class TtsManager : IMoGoCloudListener {
|
||||
|
||||
companion object {
|
||||
|
||||
const val TAG = "TtsManager"
|
||||
|
||||
val ttsManager by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
|
||||
TtsManager()
|
||||
}
|
||||
}
|
||||
|
||||
fun initTts(context: Context) {
|
||||
val sn = SharedPrefsMgr.getInstance(context).getString("sn")
|
||||
if (sn.isNullOrEmpty()) {
|
||||
CallerCloudListenerManager.registerCloudListener(TraceManager.TAG, this)
|
||||
}
|
||||
AIAssist.getInstance(context)
|
||||
}
|
||||
|
||||
override fun tokenGot(token: String, sn: String) {
|
||||
ThreadUtils.runOnUiThread {
|
||||
AIAssist.getInstance(AbsMogoApplication.getApp()).initTtsAgain(sn)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -67,7 +67,6 @@ public abstract class MainMoGoApplication extends AbsMogoApplication {
|
||||
initCrashConfig();
|
||||
initLogConfig();
|
||||
initTipToast();
|
||||
AIAssist.getInstance(this);
|
||||
initModules();
|
||||
if (DebugConfig.isDebug()) {
|
||||
initKoom();
|
||||
|
||||
@@ -62,6 +62,15 @@ public class AIAssist {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 重新初始化Tts(首次sn获取比较慢,而TTS初始化比较早会拿不到授权)
|
||||
*/
|
||||
public void initTtsAgain(String sn) {
|
||||
if (mTTS != null) {
|
||||
mTTS.initTts(sn);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否语音注册成功
|
||||
*
|
||||
|
||||
@@ -13,6 +13,8 @@ public
|
||||
*/
|
||||
interface IMogoTTS extends IProvider {
|
||||
|
||||
void initTts(String sn);
|
||||
|
||||
/**
|
||||
* 释放资源
|
||||
*/
|
||||
|
||||
@@ -23,7 +23,7 @@ import com.aispeech.export.engines.AILocalTTSEngine;
|
||||
import com.aispeech.export.intent.AILocalTTSIntent;
|
||||
import com.aispeech.export.listeners.AITTSListener;
|
||||
import com.aispeech.lite.AuthType;
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
|
||||
import com.elegant.utils.storage.SharedPrefsMgr;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils;
|
||||
@@ -125,13 +125,20 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
|
||||
}
|
||||
}
|
||||
|
||||
private void initTtsConfig() {
|
||||
@Override
|
||||
public void initTts(String sn) {
|
||||
if (!mHasAuth && sn != null && !sn.isEmpty()) {
|
||||
initTtsConfig(sn);
|
||||
}
|
||||
}
|
||||
|
||||
private void initTtsConfig(String sn) {
|
||||
try {
|
||||
CallerLogger.INSTANCE.d(TAG, "initTtsConfig");
|
||||
//在线授权配置
|
||||
AuthConfig.Builder onlineBuilder = new AuthConfig.Builder()
|
||||
.setType(AuthType.ONLINE)
|
||||
.setCustomDeviceName(MoGoAiCloudClientConfig.getInstance().getSn());
|
||||
.setCustomDeviceName(sn);
|
||||
|
||||
//echo 配置
|
||||
EchoConfig echoConfig = new EchoConfig.Builder()
|
||||
@@ -719,7 +726,7 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
|
||||
mVoiceClient = new VoiceClient(mContext);
|
||||
mVoiceClient.setCallBack(this);
|
||||
initFlushStatus();
|
||||
initTtsConfig();
|
||||
initTts(SharedPrefsMgr.getInstance(mContext).getString("sn"));
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
// 检查是否有悬浮窗权限
|
||||
if (Settings.canDrawOverlays(context)) {
|
||||
|
||||
Reference in New Issue
Block a user