[6.3.0][Feat]新增全局Tts事件监听
This commit is contained in:
@@ -5,13 +5,25 @@ import android.os.Bundle
|
||||
import android.os.Looper
|
||||
import android.util.Pair
|
||||
import androidx.annotation.Keep
|
||||
import com.iflytek.cloud.*
|
||||
import com.iflytek.cloud.ErrorCode
|
||||
import com.iflytek.cloud.InitListener
|
||||
import com.iflytek.cloud.SpeechConstant
|
||||
import com.iflytek.cloud.SpeechError
|
||||
import com.iflytek.cloud.SpeechSynthesizer
|
||||
import com.iflytek.cloud.SynthesizerListener
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.tts.base.*
|
||||
import java.util.*
|
||||
import com.mogo.tts.base.IGlobalTtsCallback
|
||||
import com.mogo.tts.base.IMogoTTS
|
||||
import com.mogo.tts.base.IMogoTTSCallback
|
||||
import com.mogo.tts.base.LangTtsEntity
|
||||
import com.mogo.tts.base.LanguageType
|
||||
import com.mogo.tts.base.MultiLangTtsEntity
|
||||
import com.mogo.tts.base.PreemptType
|
||||
import com.mogo.tts.base.SpeechUtils
|
||||
import java.util.LinkedList
|
||||
|
||||
@Keep
|
||||
class IFlyTekTts : IMogoTTS, InitListener {
|
||||
@@ -42,6 +54,8 @@ class IFlyTekTts : IMogoTTS, InitListener {
|
||||
HashMap<String, IMogoTTSCallback>()
|
||||
}
|
||||
|
||||
private var mGlobalTtsCallback: IGlobalTtsCallback? = null
|
||||
|
||||
override fun init(context: Context) {
|
||||
this.context = context
|
||||
SpeechUtils.init(context)
|
||||
@@ -175,6 +189,10 @@ class IFlyTekTts : IMogoTTS, InitListener {
|
||||
override fun unregisterUnWakeupCommand(cmd: String?, callback: IMogoTTSCallback?) {
|
||||
}
|
||||
|
||||
override fun registerTtsListener(callback: IGlobalTtsCallback?) {
|
||||
mGlobalTtsCallback = callback
|
||||
}
|
||||
|
||||
override fun startAIAssist(context: Context?) {
|
||||
}
|
||||
|
||||
@@ -263,11 +281,13 @@ class IFlyTekTts : IMogoTTS, InitListener {
|
||||
// speakVoiceMap[curTtsEntity.toString()]?.onSpeakEnd(curTtsEntity.toString())
|
||||
ttsNextLanguage(langTtsEntity)
|
||||
} else {
|
||||
mGlobalTtsCallback?.onTtsSpeakEnd()
|
||||
speakVoiceMap.remove(curTtsEntity.toString())?.onSpeakEnd(curTtsEntity.toString())
|
||||
curTtsEntity = null
|
||||
ttsNextMultiLangEntity()
|
||||
}
|
||||
} else {// 单语言
|
||||
mGlobalTtsCallback?.onTtsSpeakEnd()
|
||||
speakVoiceMap.remove(curTtsContent)?.onSpeakEnd(curTtsContent)
|
||||
curTtsContent = ""
|
||||
ttsNextMultiLangEntity()
|
||||
@@ -288,6 +308,7 @@ class IFlyTekTts : IMogoTTS, InitListener {
|
||||
|
||||
private val ttsListener = object : SynthesizerListener {
|
||||
override fun onSpeakBegin() {
|
||||
mGlobalTtsCallback?.onTtsSpeakStart()
|
||||
if (Thread.currentThread() == Looper.getMainLooper().thread) {
|
||||
curTtsEntity?.let {
|
||||
speakVoiceMap[it.toString()]?.onSpeakStart(it.toString())
|
||||
|
||||
Reference in New Issue
Block a user