이전에 메타 데이터를 읽는 데 문제가 없었던 MP3가 있습니다. JavaFX
의 MediaPlayer.getMetadata()
기능을 사용 하여 mp3 파일에서 모든 데이터를 가져 와서 ObservableMap<String, Object>
지도에 저장합니다 . 이것은 훌륭하게 작동했고 다른 MP3를 사용하기 시작했습니다.
표준은 분명히 ID3v2
이지만 getMetadata
함수와 구문 분석하는 태그의 종류, 다른 것보다 우선 순위가 높은 유형 에 관한 문서를 찾을 수 없습니다 . 지금은 아티스트, 앨범, 제목 및 앨범 아티스트를 관리 할 수 있지만 트랙 및 트랙 수와 같은 다른 태그는 더 이상 작동하지 않습니다. 메타 데이터를로드 할 때 먼저에 대한 호출을 인쇄합니다 data.toString()
. 데이터 개체는 ObservableMap<String, Object>
지도입니다. 다음과 같이 멋지게 형식이 인쇄됩니다.
{album artist=LCD Soundsystem, artist=LCD Soundsystem, raw metadata={ID3=java.nio.HeapByteBufferR[pos=221 lim=4096 cap=4096]}, title=You Wanted a Hit, album=This Is Happening}
이전에 사용한 MP3에는이 맵에 트랙, 트랙 합계, 연도 및 기타 메타 데이터가 포함되어 있으며 더 이상 읽지 않는 이유를 알 수 없습니다. 나는 모든 태그 형식으로 저장, 내 MP3 태그 편집기에서, 시도 (포함 ID3v1
, ID3v2
및 APE
)하지만 여전히 그 특정 태그를로드 거부합니다.
getMetadata
누군가가 좋은 방향으로 나를 가리킬 수 있다면 함수에 대한 일반 Oracle javadoc을 넘어서는 문서를 아직 찾지 못했습니다 .
내가 문제를 알아 낸 것 같습니다. 내가 사용했던 태그 유틸리티는 기본적으로 ID3v2.3@utf16
. 나는 MP3Tag
그들을 ID3v2.4@utf8
. 이제 모든 필드가 올바르게로드됩니다.
누구든지지도에서 어떤 데이터 유형이 반환되는지 또는 어떤 다른 태그가 반환되는지에 대한 추가 문서를 작성할 수 있다면 좋을 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다