私は自分のプログラムであるときに開始され、ループし続けるバックグラウンド ミュージックを実装しようとしています。netbeans からプログラムを実行すると完全に機能しますが、jar ファイルを実行すると機能しませんでした。現在の実装で動作させる方法はありますか? ありがとう
メインメソッドでは、これを呼び出します:
Sound sound = new Sound();
if (sound.setSong("resources\\music.wav")) { sound.start(); }
サウンドクラスは次のとおりです。
public class Sound extends Thread {
private AudioStream as;
private AudioPlayer p;
private boolean playback;
public void run() { startPlayback(); }
public boolean setSong(String b) {
try {
File a = new File(System.getProperty("user. dir") + "\\src\\" + b);
if (a.exists()) {
// HERE THERE IS THE IMPLEMENTATION WHEN RUN FROM NETBEANS
as = new AudioStream(new FileInputStream(a));
return true;
} else { // HERE SHOULD BE THE JAR FILE IMPLEMENTATION
as = new AudioStream(this.getClass().ge tResourceAsStream(b));
return true;
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Error in loading\n" + ex.getMessage());
}
return false; }
public void startPlayback() {
playback = true;
p.player.start(as);
try {
do { } while (as.available() > 0 && playback);
if (playback) { startPlayback(); }
} catch (IOException ex) {
Logger.getLogger(Sound.class.g etName()).log(Level.SEVERE, null, ex);
}
}
public void stopPlayback() { playback = false; p.player.stop(as); } }