【发布时间】:2020-01-26 04:09:24
【问题描述】:
我有一个 FX 应用程序,它从一开始就开始播放音乐,这很有效。 现在,当我打开一个在其上播放另一个声音的方法时,我想要它。
我像第一个一样编码了第二个声音,但它不起作用。我尝试制作一个新的Thread,但没有任何变化。
新声音实际上以某种方式播放。有时它根本不播放。有时完全,有时仅一秒钟。
新声音的方法
public void showFight(int fighterLeft, int fighterRight) throws InterruptedException {
//Some code
new Thread(() -> {
music2();
}).start();
new Thread(() -> {
try {
Thread.sleep(3000L);
} catch (InterruptedException e) {
}
Platform.runLater(() -> {
//FadeIn();
FightPane.setVisible(false);
});
}).start();
}
public static void music2() {
Media hit2 = new Media(JavaFXApplicationStratego.class.getResource("/Sounds/fight.mp3").toString());
MediaPlayer mediaPlayer2 = new MediaPlayer(hit2);
mediaPlayer2.play();
}
第一声
public static void music() {
String bip = "/stopen.mp3";
Media hit = new Media(JavaFXApplicationStratego.class.getResource("/Sounds/stopen.mp3").toString());
MediaPlayer mediaPlayer = new MediaPlayer(hit);
mediaPlayer.play();
}
【问题讨论】:
-
实际上,即使是第一首音乐也无法正常工作,当我启动应用程序时,它有时会开始播放,有时不播放,有时只播放一秒钟。但这是另一个问题
-
所以您希望完成的是同时播放从线程内部执行的声音,对吧?如果是这样,那么看看这个SO link
标签: java multithreading javafx javasound