2017-12-24 8 views
1

Audacity에서 wave (.wav) 파일을 LOOP_START 및 LOOP_LENGTH 키를 사용하여 메타 데이터의 맞춤 태그와 함께 내 보냈습니다.자바 : 웨이브 오디오 파일에서 메타 데이터 태그 받기

Screenshot of the tags in the metadata editor in Audacity

내 유일한 문제는 내가 내 자바 프로그램에서 이러한 키에 부착 된 값을 얻는 방법을 모르는 것입니다. 나는 이것에 대해 어떻게 갈 것인가?

편집 : 유일한 방법 인 경우 타사 라이브러리를 다운로드하는 것에 반대하지는 않지만 표준 Java 라이브러리를 사용하는 솔루션을 사용하는 것이 좋습니다.

Edit2가 : 여기에 내가 함께 장난하고 일부 코드입니다 :

URL url = Main.class.getClassLoader().getResource("bgm/bgm4.wav"); 
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(url); 
AudioFormat format = audioInputStream.getFormat(); 
System.out.println(format.properties()); 

하지만에만이 인쇄 : "{}". ("bgm"은 (src의 직접적인 자식 인) 폴더 임)

나는 예외를 던지지 않기 때문에 파일을 읽고 있다는 것을 알고 있지만 src가 아닌 루트에서 bin으로갑니다. . 차이가 있는지 확실하지 않습니다. 하지만 bin의 오디오 파일에는 src에있는 것과 동일한 메타 데이터 태그가 있습니다.

1/13/18 편집 : 아직 답변을 얻으 려하지 않습니다. 다음은 내가 시도하고있는 새로운 코드입니다.

URL url = AudioMetadata.class.getClassLoader().getResource("audio/bgm4.wav"); 
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(url); 
AudioFormat format = audioInputStream.getFormat(); 
AudioFileFormat fformat = AudioSystem.getAudioFileFormat(url); 

Map<String, Object> props = fformat.properties(); 
System.out.println(props.size()); 

이 인쇄물은 0입니다.

답변

0

.wav를 읽은 후에 Java 사운드 라이브러리와 .properties 요소를 사용할 수 있어야합니다. Here은 Java Sound 가이드에 대한 링크입니다.

Ex.

AudioFormat file = stream.getFormat(); 
System.out.println("Properties: " + file.properties()); 
+0

내 두 번째 편집을 참조하십시오. 비슷한 것을 시도했지만 "{}"만 인쇄합니다. – wheat32

관련 문제