Java에서 .wav 사운드를 재생 중입니다. 호출되는wav 재생시 Java 충돌 발생
package tools;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineEvent;
import javax.sound.sampled.LineListener;
public class ClipHandler implements LineListener {
private Clip clip;
public ClipHandler(Clip clip) {
this.clip = clip;
clip.addLineListener(this);
}
public void play() {
clip.start();
}
public void update(LineEvent e) {
if (e.getType() == LineEvent.Type.STOP) {
clip.close();
}
}
}
방법 : 나는 .wav 파일을 재생하려고 할 때
public static void play(String path) {
try {
URL soundUrl = SoundTools.class.getResource(path);
AudioInputStream stream = AudioSystem.getAudioInputStream(soundUrl);
AudioFormat format = stream.getFormat();
DataLine.Info info = new DataLine.Info(Clip.class, format);
Clip clip = (Clip) AudioSystem.getLine(info);
clip.open(stream);
clip.start();
new ClipHandler(clip).play();
}
catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
문제가 발생 I는 다음과 같다 몇 가지 코드가 있습니다. 항상 처음에는 작동하지만 몇 번 전화를 걸어 (경로) 호출하면 게임이 완전히 멈추고 있습니다. 내가 아무 것도하지 못하게 할 것이다. 도움이 필요해! 그런데 다음과 같은 코드를 호출합니다. SoundTools.play(soundPath);
게임, 창, GUI 라이브러리에 대해 자세히 알려주십시오. 그네? 스윙 스레딩 규칙을 존중합니까? –
@HovercraftFullOfEels 예 스윙을 사용하고 조금은 awt를 사용하고 있습니다. 그 밖의 무엇을 알고 싶습니까? – Jerfov2
문제를 나타내는 [실행 가능한 예제] (https://stackoverflow.com/help/mcve)를 제공하십시오. 그러면 혼란이 줄어들고 응답이 향상됩니다. – MadProgrammer