[2.13.0][fix]解决首次安装Tts不生效的问题

原因:首次安装sn没有缓存到sp,然后Tts初始化时机比从后台获取要靠前
This commit is contained in:
chenfufeng
2022-11-30 14:19:07 +08:00
parent 621c8f36d2
commit 86a579be69
6 changed files with 61 additions and 5 deletions

View File

@@ -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.scene.SceneManager.Companion.sceneManager
import com.zhjt.mogo_core_function_devatools.status.* 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.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 com.zhjt.mogo_core_function_devatools.upgrade.UpgradeManager.Companion.upgradeManager
import record_cache.RecordPanelOuterClass import record_cache.RecordPanelOuterClass
@@ -35,6 +37,7 @@ class DevaToolsProvider : IDevaToolsProvider {
} }
override fun initBiz() { override fun initBiz() {
ttsManager.initTts(mContext!!)
traceManager.init(mContext!!) traceManager.init(mContext!!)
bizConfigCenter.init(mContext!!) bizConfigCenter.init(mContext!!)
FuncConfigImpl.init() FuncConfigImpl.init()

View File

@@ -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)
}
}
}

View File

@@ -67,7 +67,6 @@ public abstract class MainMoGoApplication extends AbsMogoApplication {
initCrashConfig(); initCrashConfig();
initLogConfig(); initLogConfig();
initTipToast(); initTipToast();
AIAssist.getInstance(this);
initModules(); initModules();
if (DebugConfig.isDebug()) { if (DebugConfig.isDebug()) {
initKoom(); initKoom();

View File

@@ -62,6 +62,15 @@ public class AIAssist {
} }
} }
/**
* 重新初始化Tts(首次sn获取比较慢而TTS初始化比较早会拿不到授权)
*/
public void initTtsAgain(String sn) {
if (mTTS != null) {
mTTS.initTts(sn);
}
}
/** /**
* 是否语音注册成功 * 是否语音注册成功
* *

View File

@@ -13,6 +13,8 @@ public
*/ */
interface IMogoTTS extends IProvider { interface IMogoTTS extends IProvider {
void initTts(String sn);
/** /**
* 释放资源 * 释放资源
*/ */

View File

@@ -23,7 +23,7 @@ import com.aispeech.export.engines.AILocalTTSEngine;
import com.aispeech.export.intent.AILocalTTSIntent; import com.aispeech.export.intent.AILocalTTSIntent;
import com.aispeech.export.listeners.AITTSListener; import com.aispeech.export.listeners.AITTSListener;
import com.aispeech.lite.AuthType; 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.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.ThreadUtils; import com.mogo.eagle.core.utilcode.util.ThreadUtils;
import com.mogo.eagle.core.utilcode.util.ToastUtils; 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 { try {
CallerLogger.INSTANCE.d(TAG, "initTtsConfig"); CallerLogger.INSTANCE.d(TAG, "initTtsConfig");
//在线授权配置 //在线授权配置
AuthConfig.Builder onlineBuilder = new AuthConfig.Builder() AuthConfig.Builder onlineBuilder = new AuthConfig.Builder()
.setType(AuthType.ONLINE) .setType(AuthType.ONLINE)
.setCustomDeviceName(MoGoAiCloudClientConfig.getInstance().getSn()); .setCustomDeviceName(sn);
//echo 配置 //echo 配置
EchoConfig echoConfig = new EchoConfig.Builder() EchoConfig echoConfig = new EchoConfig.Builder()
@@ -719,7 +726,7 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
mVoiceClient = new VoiceClient(mContext); mVoiceClient = new VoiceClient(mContext);
mVoiceClient.setCallBack(this); mVoiceClient.setCallBack(this);
initFlushStatus(); initFlushStatus();
initTtsConfig(); initTts(SharedPrefsMgr.getInstance(mContext).getString("sn"));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// 检查是否有悬浮窗权限 // 检查是否有悬浮窗权限
if (Settings.canDrawOverlays(context)) { if (Settings.canDrawOverlays(context)) {