[Opt3.0]内部封装TTS在主线程中调用
This commit is contained in:
@@ -68,8 +68,15 @@ class IFlyTekTts : IMogoTTS, InitListener {
|
||||
}
|
||||
|
||||
override fun release() {
|
||||
ttsEngine?.stopSpeaking()
|
||||
ttsEngine?.destroy()
|
||||
if (Thread.currentThread() != Looper.getMainLooper().thread) {
|
||||
UiThreadHandler.post {
|
||||
ttsEngine?.stopSpeaking()
|
||||
ttsEngine?.destroy()
|
||||
}
|
||||
} else {
|
||||
ttsEngine?.stopSpeaking()
|
||||
ttsEngine?.destroy()
|
||||
}
|
||||
}
|
||||
|
||||
override fun flush() {
|
||||
@@ -91,7 +98,16 @@ class IFlyTekTts : IMogoTTS, InitListener {
|
||||
|
||||
override fun speakTTSVoiceWithLevel(tts: String?, level: Int, callBack: IMogoTTSCallback?) {
|
||||
if (tts.isNullOrEmpty()) return
|
||||
speakMultiLangTTSWithLevel(MultiLangTtsEntity(listOf(LangTtsEntity(tts, LanguageType.CHINESE))), level, callBack)
|
||||
speakMultiLangTTSWithLevel(
|
||||
MultiLangTtsEntity(
|
||||
listOf(
|
||||
LangTtsEntity(
|
||||
tts,
|
||||
LanguageType.CHINESE
|
||||
)
|
||||
)
|
||||
), level, callBack
|
||||
)
|
||||
}
|
||||
|
||||
override fun speakMultiLangTTSWithLevel(
|
||||
@@ -99,10 +115,19 @@ class IFlyTekTts : IMogoTTS, InitListener {
|
||||
level: Int,
|
||||
callBack: IMogoTTSCallback?
|
||||
) {
|
||||
if (callBack != null) {
|
||||
speakVoiceMap[ttsEntity.toString()] = callBack
|
||||
if (Thread.currentThread() != Looper.getMainLooper().thread) {
|
||||
UiThreadHandler.post {
|
||||
if (callBack != null) {
|
||||
speakVoiceMap[ttsEntity.toString()] = callBack
|
||||
}
|
||||
speakMultiLangTTSWithLevel(ttsEntity, level)
|
||||
}
|
||||
} else {
|
||||
if (callBack != null) {
|
||||
speakVoiceMap[ttsEntity.toString()] = callBack
|
||||
}
|
||||
speakMultiLangTTSWithLevel(ttsEntity, level)
|
||||
}
|
||||
speakMultiLangTTSWithLevel(ttsEntity, level)
|
||||
}
|
||||
|
||||
override fun stopSpeakTts(text: String?) {
|
||||
@@ -110,6 +135,16 @@ class IFlyTekTts : IMogoTTS, InitListener {
|
||||
}
|
||||
|
||||
override fun stopTts() {
|
||||
if (Thread.currentThread() != Looper.getMainLooper().thread) {
|
||||
UiThreadHandler.post {
|
||||
realStop()
|
||||
}
|
||||
} else {
|
||||
realStop()
|
||||
}
|
||||
}
|
||||
|
||||
private fun realStop() {
|
||||
curTtsEntity?.let {
|
||||
val string = it.toString()
|
||||
if (speakVoiceMap.containsKey(string)) {
|
||||
|
||||
Reference in New Issue
Block a user