fix: 将 TTS 延迟方式从 Thread.sleep 改为 Handler.postDelayed

确保悬浮窗先完成渲染,再延时播放语音,避免 Thread.sleep 阻塞主线程导致窗口无法显示。
This commit is contained in:
BigPickle
2026-06-24 09:41:04 +08:00
parent 8507b6ac23
commit 8e07f4a42c
2 changed files with 16 additions and 17 deletions
+2 -2
View File
@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
#Wed Jun 24 09:28:12 CST 2026
#Wed Jun 24 09:36:16 CST 2026
stageCount=12
libraryProject=
baseVersion=15.12
publishVersion=15.12.11
buildCount=4
buildCount=5
baseBetaVersion=15.12.12
@@ -65,15 +65,12 @@ public class TextToSpeechUtil {
}
}
initWindow(); // 已同步尺寸和位置
initWindow(); // 先弹出悬浮窗口
int nDelay = listTTSSpeakTextBean.get(0).mnDelay;
try {
Thread.sleep(nDelay);
} catch (InterruptedException e) {
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
}
new android.os.Handler(mContext.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
for (int speakPosition = 0; speakPosition < listTTSSpeakTextBean.size() && !isExist; speakPosition++) {
String szSpeakContent = listTTSSpeakTextBean.get(speakPosition).mszSpeakContent;
isExist = (listTTSSpeakTextBean.size() - 2 < speakPosition);
@@ -84,6 +81,8 @@ public class TextToSpeechUtil {
}
}
}
}, nDelay);
}
}
}