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