mirror of
https://github.com/gedoor/legado.git
synced 2025-08-10 00:52:30 +00:00
fix-empty-tts-text (#4199)
This commit is contained in:
@@ -93,37 +93,41 @@ class TTSReadAloudService : BaseReadAloudService(), TextToSpeech.OnInitListener
|
||||
LogUtils.d(TAG, "朗读列表大小 ${contentList.size}")
|
||||
LogUtils.d(TAG, "朗读页数 ${textChapter?.pageSize}")
|
||||
val tts = textToSpeech ?: throw NoStackTraceException("tts is null")
|
||||
var result = tts.runCatching {
|
||||
speak("", TextToSpeech.QUEUE_FLUSH, null, null)
|
||||
}.getOrElse {
|
||||
AppLog.put("tts出错\n${it.localizedMessage}", it, true)
|
||||
TextToSpeech.ERROR
|
||||
}
|
||||
if (result == TextToSpeech.ERROR) {
|
||||
AppLog.put("tts出错 尝试重新初始化")
|
||||
clearTTS()
|
||||
initTts()
|
||||
return@execute
|
||||
}
|
||||
val contentList = contentList
|
||||
for (i in nowSpeak until contentList.size) {
|
||||
ensureActive()
|
||||
var text = contentList[i]
|
||||
ensureActive()
|
||||
if (paragraphStartPos > 0 && i == nowSpeak) {
|
||||
text = text.substring(paragraphStartPos)
|
||||
}
|
||||
if (text.matches(AppPattern.notReadAloudRegex)) {
|
||||
continue
|
||||
}
|
||||
result = tts.runCatching {
|
||||
speak(text, TextToSpeech.QUEUE_ADD, null, AppConst.APP_TAG + i)
|
||||
}.getOrElse {
|
||||
AppLog.put("tts出错\n${it.localizedMessage}", it, true)
|
||||
TextToSpeech.ERROR
|
||||
}
|
||||
if (result == TextToSpeech.ERROR) {
|
||||
AppLog.put("tts朗读出错:$text")
|
||||
if (i == nowSpeak) {
|
||||
val result = tts.runCatching {
|
||||
speak(text, TextToSpeech.QUEUE_FLUSH, null, AppConst.APP_TAG + i)
|
||||
}.getOrElse {
|
||||
AppLog.put("tts出错\n${it.localizedMessage}", it, true)
|
||||
TextToSpeech.ERROR
|
||||
}
|
||||
if (result == TextToSpeech.ERROR) {
|
||||
AppLog.put("tts出错 尝试重新初始化")
|
||||
clearTTS()
|
||||
initTts()
|
||||
return@execute
|
||||
}
|
||||
} else {
|
||||
val result = tts.runCatching {
|
||||
speak(text, TextToSpeech.QUEUE_ADD, null, AppConst.APP_TAG + i)
|
||||
}.getOrElse {
|
||||
AppLog.put("tts出错\n${it.localizedMessage}", it, true)
|
||||
TextToSpeech.ERROR
|
||||
}
|
||||
if (result == TextToSpeech.ERROR) {
|
||||
AppLog.put("tts朗读出错:$text")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
LogUtils.d(TAG, "朗读内容添加完成")
|
||||
}.onError {
|
||||
|
||||
Reference in New Issue
Block a user