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 e9cecafb98..7f6d964542 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 @@ -63,6 +63,9 @@ interface IMogoTTSCallback { default void onCmdCancel( String speakText ) { } + default void onSpeakStart( String speakText ) { + } + /** * 语音播报完毕 * 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 91a16feebb..ddcc785d84 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 @@ -288,7 +288,17 @@ class IFlyTekTts : IMogoTTS, InitListener { private val ttsListener = object : SynthesizerListener { override fun onSpeakBegin() { - + if (Thread.currentThread() == Looper.getMainLooper().thread) { + curTtsEntity?.let { + speakVoiceMap[it.toString()]?.onSpeakStart(it.toString()) + } + } else { + UiThreadHandler.post { + curTtsEntity?.let { + speakVoiceMap[it.toString()]?.onSpeakStart(it.toString()) + } + } + } } override fun onBufferProgress(p0: Int, p1: Int, p2: Int, p3: String?) { 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 5a6e57490f..2933b97357 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 @@ -747,6 +747,10 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack { @Override public void onReady(String s) { CallerLogger.d(TAG, "开始播放"); + IMogoTTSCallback callBack = mSpeakVoiceMap.get(s); + if (callBack != null) { + callBack.onSpeakStart(s); + } } @Override diff --git a/tts/tts-zhi/src/main/java/com/mogo/tts/pad/ZhiTTS.java b/tts/tts-zhi/src/main/java/com/mogo/tts/pad/ZhiTTS.java index f22ac83b28..23c28df39f 100644 --- a/tts/tts-zhi/src/main/java/com/mogo/tts/pad/ZhiTTS.java +++ b/tts/tts-zhi/src/main/java/com/mogo/tts/pad/ZhiTTS.java @@ -154,7 +154,11 @@ public class ZhiTTS implements IMogoTTS, OnTtsListener { } ZDTtsManager.getInstance().speak(text, getZhiLevel(ttsLevel), new ITtsListener() { @Override - public void onTtsStart(String s, String s1) throws RemoteException {} + public void onTtsStart(String s, String s1) throws RemoteException { + if (callBack != null) { + callBack.onSpeakStart(s); + } + } @Override public void onTtsFinish(String s, String s1) throws RemoteException {