【发布时间】:2018-06-23 00:56:05
【问题描述】:
我正在尝试在打开 .JAR 文件时播放歌曲。它在 Netbeans 中运行良好,但打开 .Jar 文件时,仅显示场景更改按钮和这些场景中的图像。
在 FXML 的控制器中,我初始化了一个用于播放歌曲的线程:
@Override
public void initialize(URL url, ResourceBundle rb) {
PlaySong ps = new PlaySong();
Thread thread = new Thread(ps);
thread.start();
}
这会使用应该播放歌曲的线程调用类:
public class PlaySong implements Runnable {
@Override
public void run() {
playSong();
}
static void playSong(){
try{
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("/src/maanedsdag2/AssetsLibrary/James Smith - Just the Way You Are.wav").getAbsoluteFile());
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
Thread.sleep(clip.getMicrosecondLength()/1000);
} catch(Exception e){
}
}
}
我的意图是在通过初始化方法打开 FXML 时开始播放歌曲。
希望大家帮忙。
【问题讨论】:
-
呃..
} catch(Exception e){ }不要忽略异常!如果不记录潜在故障,至少转储堆栈跟踪。例如。} catch(Exception e){ e.printStackTrace(); } -
这不是某种重复吗?试图从 jar 中打开文件的问题已经出现了无数次。文件系统不包括 jar 文件的内部。使用 URL 来处理这些资源。
-
找到了上周的副本。我知道还有更多可以追溯到几年前。 stackoverflow.com/questions/50710703/…
标签: java jar fxml embedded-resource javasound