방금 발견 한 (JLayer) 깔끔한 라이브러리를 사용하여 mp3 파일을 재생하려고하는데이 코드로 컴파일하면 (Netbeans에서) 올바르게 작동합니다.파일 입력 스트림이 컴파일러에서 제대로 작동하지만 빌드 후 작동하지 않습니다.
ClassLoader cl = this.getClass().getClassLoader();
url = cl.getResource("music/45.mp3");
pin = new FileInputStream(url.getFile());
p = new Player(pin);
p.play();
내 프로젝트를 빌드하고 실행 가능한 jar를 실행하려고했습니다. 내 프로그램이 실행 중임을 시각적으로 볼 수 있도록 JFrame을 확장했습니다. 프레임은 실행되면 나타나지만 소리는 나지 않습니다. 클래스 로더를 사용하면이 문제가 해결되지만 행운은 없습니다. 도와 주시면 대단히 감사하겠습니다!
좋습니다. 이 상황에서 FileInputStream의 기능을 이해하기 위해서 : "player"라는 폴더에 실행 가능한 jar를 놓고 "player"라는 "player"안에 "media"라는 폴더를 추가한다고 가정 해보십시오. 그런 다음 프로그램에서 상대 위치의 jar 파일 외부에 "media"라는 폴더를 찾습니다. 그러면 FileInputStream을 적용 할 수 있습니까? –
@DillonBurton : MP3 리소스 *가 파일이 아니기 때문에 아니요. 그것은 jar 파일 안에 들어 있습니다. 'FileInputStream'은 디스크 내의 파일로부터 데이터를 읽습니다. –
정말 문제가 해결되었습니다. 고마워요 +1. –