diff --git a/tts/tts-base/src/main/java/com/mogo/tts/base/IMogoTTSCallback.java b/tts/tts-base/src/main/java/com/mogo/tts/base/IMogoTTSCallback.java index 7f6d964542..d42ba17133 100644 --- a/tts/tts-base/src/main/java/com/mogo/tts/base/IMogoTTSCallback.java +++ b/tts/tts-base/src/main/java/com/mogo/tts/base/IMogoTTSCallback.java @@ -74,6 +74,9 @@ interface IMogoTTSCallback { default void onSpeakEnd( String speakText ) { } + default void onStopTts( String speakText ) { + } + default void onSpeakError( String speakText, String errorMsg) { } diff --git a/tts/tts-iflytek/src/main/java/com/mogo/tts/iflytek/IFlyTekTts.kt b/tts/tts-iflytek/src/main/java/com/mogo/tts/iflytek/IFlyTekTts.kt index 1897430cd1..43d7b0e2f7 100644 --- a/tts/tts-iflytek/src/main/java/com/mogo/tts/iflytek/IFlyTekTts.kt +++ b/tts/tts-iflytek/src/main/java/com/mogo/tts/iflytek/IFlyTekTts.kt @@ -156,7 +156,7 @@ class IFlyTekTts : IMogoTTS, InitListener { curTtsEntity?.let { val string = it.toString() if (speakVoiceMap.containsKey(string)) { - speakVoiceMap.remove(string) + speakVoiceMap.remove(string)?.onStopTts(string) } curTtsEntity = null } diff --git a/tts/tts-pad/src/main/java/com/mogo/tts/pad/PadTTS.java b/tts/tts-pad/src/main/java/com/mogo/tts/pad/PadTTS.java index 79987d66f3..b8cb7fad71 100644 --- a/tts/tts-pad/src/main/java/com/mogo/tts/pad/PadTTS.java +++ b/tts/tts-pad/src/main/java/com/mogo/tts/pad/PadTTS.java @@ -357,7 +357,10 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack { public void stopSpeakTts(String text) { if (mEngine != null && mHasAuth) { - mSpeakVoiceMap.remove(text); + IMogoTTSCallback callBack = mSpeakVoiceMap.remove(text); + if (callBack != null) { + callBack.onStopTts(curTtsContent); + } curTtsContent = ""; curTtsLevel = -1; mEngine.stop(); @@ -366,7 +369,10 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack { public void stopTts() { if (mEngine != null && mHasAuth) { - mSpeakVoiceMap.remove(curTtsContent); + IMogoTTSCallback callBack = mSpeakVoiceMap.remove(curTtsContent); + if (callBack != null) { + callBack.onStopTts(curTtsContent); + } // tts过程中调用stop不会有回调事件 curTtsContent = ""; curTtsLevel = -1;