我正在使用 freeTTS 说出一些文本,在后台我想要一个动画 gif 继续播放 当我尝试这样做时:一旦声音开始说话,背景中的图像就会被挂起,即使我将其保留在其他 JFrame 中......并且在语音完成后它开始移动。我希望它能够正常运行而不会暂停。 我将一个动画 gif 导入到我的应用程序中,并将图标更改为标签属性中的该图像,从而将其放置在标签中。
编辑 这是我的代码:
private void RandomjBActionPerformed(java.awt.event.ActionEvent evt) {
Voice voice;
voice = voiceManager.getVoice(VOICENAME);
voice.allocate();
voice.speak("Daksh");
}
我实际上使用了很多 setVisible、setText、整数声明,对它们进行计算,但我已经删除了它们以简化代码以便您理解。如果执行的话仍然会出现同样的问题。
通过以下代码从另一个按钮单击按钮“RandomjB”:
final Timer timer = new Timer(zad, new ActionListener() {
int tick = 0;
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Success" + ++tick);
RandomjB.doClick();
final int col = Integer.parseInt(t3.getText());;
if (tick >= col) {
((Timer) e.getSource()).stop();
for(int g=0; g<col; g++){
jButton2.setVisible(true); // Check Button -> Visible
}
}
}
});
timer.setInitialDelay(0);
System.out.format("About to schedule task.%n");
timer.start();
System.out.format("Task scheduled.%n");
最佳答案
如果没有代码,很难说清楚,但是我假设您在唯一的 Swing 线程中循环语音合成,因此只要语音循环正在进行,就会阻止所有类型的窗口更新。
正如 Shaun Wild 所说:您需要使用第二个线程来进行语音循环。
关于java - 使用 freeTTS 语音时无法播放 gif - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19201264/