From 0aec880e5b7d7ffbb1611623f43509b065a2cde6 Mon Sep 17 00:00:00 2001 From: kunfei Date: Thu, 8 Dec 2022 19:31:10 +0800 Subject: [PATCH] =?UTF-8?q?tts=E6=9C=97=E8=AF=BB=E8=B7=B3=E8=BF=87?= =?UTF-8?q?=E5=85=A8=E6=A0=87=E7=82=B9=E6=AE=B5=E8=90=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../legado/app/service/TTSReadAloudService.kt | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/io/legado/app/service/TTSReadAloudService.kt b/app/src/main/java/io/legado/app/service/TTSReadAloudService.kt index fcb398f4d..3b6cdb7b8 100644 --- a/app/src/main/java/io/legado/app/service/TTSReadAloudService.kt +++ b/app/src/main/java/io/legado/app/service/TTSReadAloudService.kt @@ -86,10 +86,12 @@ class TTSReadAloudService : BaseReadAloudService(), TextToSpeech.OnInitListener return } for (i in nowSpeak until contentList.size) { - val text = contentList[i].replace(AppPattern.notReadAloudRegex, "") - result = tts.speak(text, TextToSpeech.QUEUE_ADD, null, AppConst.APP_TAG + i) - if (result == TextToSpeech.ERROR) { - AppLog.put("tts朗读出错:$text") + val text = contentList[i] + if (!text.matches(AppPattern.notReadAloudRegex)) { + result = tts.speak(text, TextToSpeech.QUEUE_ADD, null, AppConst.APP_TAG + i) + if (result == TextToSpeech.ERROR) { + AppLog.put("tts朗读出错:$text") + } } } }.onFailure { @@ -150,11 +152,15 @@ class TTSReadAloudService : BaseReadAloudService(), TextToSpeech.OnInitListener } override fun onDone(s: String) { - readAloudNumber += contentList[nowSpeak].length + 1 - nowSpeak++ - if (nowSpeak >= contentList.size) { - nextChapter() - } + //跳过全标点段落 + do { + readAloudNumber += contentList[nowSpeak].length + 1 + nowSpeak++ + if (nowSpeak >= contentList.size) { + nextChapter() + return + } + } while (contentList[nowSpeak].matches(AppPattern.notReadAloudRegex)) } override fun onRangeStart(utteranceId: String?, start: Int, end: Int, frame: Int) {