Добрый день, я использую TextToSpeech что выводить текст через динамики и у меня всё получается, но мне иногда нужно приостанавливать воспроизведение текста и потом продолжать воспроизводить на том мо - вопрос №5487996
Добрый день, я использую TextToSpeech что выводить текст через динамики и у меня всё получается, но мне иногда нужно приостанавливать воспроизведение текста и потом продолжать воспроизводить на том моменте где остановился. Как это сделать?
if (voice == null) {
System.err.println(«Voice not found»);
System.exit(1);
}
voice.allocate();
}
public void speak(String text) {
stopped = false;
speechThread = new Thread(() -> {
String[] words = text.split(" ");
for (String word: words) {
if (stopped) {
break;
}
while (paused) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
voice.speak(word);
}
});
speechThread.start();
}
public void pause() {
paused = true;
}
public void resume() {
paused = false;
}
public void stop() {
stopped = true;
if (speechThread != null) {
speechThread.interrupt();
}
}
public static void main(String[] args) {
TTSPlayer tts = new TTSPlayer();
String text = «Hello! This is a test message to demonstrate pause and resume functionality in text to speech.»;
tts.speak(text);
try {
Thread.sleep(3000);
System.out.println(«Pausing...»);
tts.pause();
Thread.sleep(3000);
System.out.println(«Resuming...»);
tts.resume();
Thread.sleep(5000);
System.out.println(«Stopping...»);
tts.stop();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}