gpt4 book ai didi

java - 声音加载在ubuntu中工作,但在Windows中不工作

转载 作者:行者123 更新时间:2023-12-03 02:07:20 25 4
gpt4 key购买 nike

我已经用Java编写了一种播放声音的方法。它在我的ubuntu笔记本电脑上工作正常,但在Windows上不工作。没有错误,但我认为由于某种原因,它可能会绕过Windows的排水方法。

public static void runOnce(final String location) {
new Thread(new Runnable() {
public void run() {
try {
File audioFile = new File(Game.gameFolder + "/sounds/" + location);
final AudioInputStream audioStream = AudioSystem.getAudioInputStream(audioFile);

AudioFormat format = audioStream.getFormat();

DataLine.Info info = new DataLine.Info(Clip.class, format);

final Clip audioClip = (Clip) AudioSystem.getLine(info);

audioClip.open(audioStream);
audioClip.start();
audioClip.drain();
try {
audioClip.close();
audioStream.close();
} catch (Exception e) {
System.out.println("heyeyeyeyye");
}
System.out.println("sound method ran");
} catch(Exception e) {}
}
}).start();
}

谢谢-泰勒

编辑:
我记得实际上它在我使用排水之前在Windows上工作,但是经过一段时间后它将不再加载,所以我切换到排水

最佳答案

我建议您使用 try-with-resources ,并join()启动线程,不要吞下Exception中的消息。就像是,

public static void runOnce(final String location) {
File audioFile = new File(Game.gameFolder + "/sounds/" + location);
Thread t = new Thread(new Runnable() {
public void run() {
try (AudioInputStream audioStream = AudioSystem
.getAudioInputStream(audioFile);) {
AudioFormat format = audioStream.getFormat();
DataLine.Info info = new DataLine.Info(Clip.class, format);
try (Clip audioClip = (Clip) AudioSystem.getLine(info);) {
audioClip.open(audioStream);
audioClip.start();
audioClip.drain();
}
System.out.println("heyeyeyeyye");
System.out.println("sound method ran");
} catch (Exception e) {
e.printStackTrace();
}
}
});
t.start();
t.join();
}

关于java - 声音加载在ubuntu中工作,但在Windows中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26953578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com