프로그램을 만들고 있는데, 프로그램이 열릴 때 사운드가 재생되기를 원합니다. 이 작업을 수행하는 가장 쉬운 방법은 .wav 파일을 내 jar의 src 폴더에 포함시키는 것입니다. 나는 파일을 files
라고 불리는 패키지에 넣었고 그림과 같은 다른 파일들은 모두 그 패키지에 들어있어 모든 것이 잘 동작한다.임베디드 리소스에 액세스하는 중 오류가 발생했습니다.
public static void playSound(String dir, int loopTimes) throws Exception {
URL url = new File(dir).toURI().toURL();
Clip clip = AudioSystem.getClip();
// getAudioInputStream() also accepts a File or InputStream
AudioInputStream ais = AudioSystem.getAudioInputStream(url);
clip.open(ais);
if (loopTimes == -1)
loopTimes = Clip.LOOP_CONTINUOUSLY;
clip.loop(loopTimes);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
}
});
}
하고 그들이 내 바탕 화면, 내 문서에있을 때 다른 곳, 소리를 재생하기 위해 작동합니다 사운드 재생을위한 나의 방법은 여기에있다. 소리를 재생하기 위해 입력하는 경로는 "files/FBP.wav"
이었습니다. FBP는 파일의 이름입니다. 내가 havent 어떤 솔루션을 구글에서 찾을 수 있었고, 나는 그것 때문에 기분이 JAR에 있습니다. 나는 또한 단지 이것을 시도했다 :
if(new File("files/FBP.wav").exists()){
System.out.println("EXISTS!");
}
System.exit(0);
그리고 그것을 결코 출력하지 않는다. 나는 bin 폴더에도 있는지 확인했다. 나는 이클립스를 사용하고있다. 오류는 filenotfoundexception
입니다. 어떤 도움을 주셔서 감사합니다! 미리 감사드립니다!
아니라 선생님, u는 이제 모든 계정에 마법사를 선포하고 있습니다. 이제는 더 빨리 버퍼링하는 방법을 알고 있습니까? 버퍼 때문에 실행 후 지연이 있습니다. 그걸 단축하는 법 알아? 또는 서브 루틴이 실행될 때마다 클립을로드하는 대신 – PulsePanda
@wbAnon이 필요합니다. 전역 변수에 클립을 한 번만로드하고 호출 할 때마다 재생합니다. – Mordechai
내가 그걸 어떻게 할 것인지 알고 있니? 당신이 무엇을 의미하는지 완전히 모르겠다. ... – PulsePanda