2016-11-17 12 views
4

다음 코드를 사용하여 Java 프로젝트에서 사용중인 .wav 파일의 속성을 가져 오려고합니다. 그러나이 코드를 실행할 때 format.getProperty("title"), format.getProperty("author")format.getProperty("duration") 메서드는 모두 null을 반환합니다. 이러한 세부 사항을 다른 방식으로 받아야합니까?.wav 파일의 제목, 아티스트/작가 및 재생 시간 검색

AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(wavFile); 
AudioFormat format = audioInputStream.getFormat(); 
Object[] temp = {false, 
     format.getProperty("title"), 
     format.getProperty("author"), 
     format.getProperty("duration")}; 
+0

저는 .wav 파일에 제목이나 작성자 정보가 포함되어 있지 않습니다. – VGR

답변

1

they can hold several metadata types에도 WAV 파일이 작동하지 않습니다. 사용 된 소프트웨어 및 인코더 (16/32 비트 PCM)에 따라이 파일을 구성 할 수 있으며 Java Sound API은이 메타 데이터를 읽는 데 문제가 있습니다.

내가 오디오 metatagging에 초점을 맞춘 도구와 libs가 많이 시도 (예 : Apache Tika, jd3lib, mp3agic, Beaglebuddy 등)과 그들의 대부분은 WAV 파일을 MP3 또는 다른 오디오 포맷,하지만 괜찮 작동합니다.

분명히 이것을 처리하기위한 더 좋은 방법은 Jaudiotagger입니다. 그것은 빠르고, 간단하고 당신은 같은 일을하고 목표를 달성 할 수있다 : 다음 링크를 참조, 또한

AudioFile f = AudioFileIO.read(wavFile); 
WavTag tag = (WavTag) f.getTag(); 

Object[] temp = {false, 
     tag.getFirst(FieldKey.TITLE), 
     tag.getFirst(FieldKey.ARTIST), 
     f.getAudioHeader().getTrackLength() // In seconds 
}; 

:

을 :이 기능에 대한 지원이 ver에서 추가되었습니다. 2.2.4 절을 보라. 따라서 항상 호환성 문제를 제거하려면 the latest version을 선호합니다.

+0

감사합니다. 그것을 고맙다 – Dan

+0

당신을 환영합니다! :) – bosco