Warianty metadanych są dołączane do dokumentów o różnych formatach plików. Pliki MP3 zwykle zawierają znaczniki metadanych ID3. W tym artykule omówiono, jak czytać różne znaczniki MP3 w Javie. Jeden po drugim zobaczymy, jak wyodrębnić tagi metadanych ID3 (IDEv1, ID3v2), Lyrics i APEv2 z plików mp3 za pomocą Java Metadata API.
Poniżej omówiono następujące tematy:
- Java API do zarządzania tagami MP3
- Czytaj tagi MP3 ID3 - ID3v1 i ID3v2
- Pobierz tagi z tekstami MP3
- Odzyskaj tagi MP3 APEv2
Java API dla znaczników metadanych MP3
GroupDocs.Metadata jest wyposażony w interfejsy API do automatyzacji zarządzania metadanymi [różnych formatów plików](https://docs.groupdocs.com/metadata/net/supported-document -formaty/) w aplikacjach. To Java API umożliwia odczytywanie, aktualizowanie, dodawanie, czyszczenie i usuwanie metadanych dla wielu formatów plików w aplikacji Java. Użyjemy go do pracy z tagami metadanych MP3.
Pobierz i skonfiguruj
Pobierz bibliotekę metadanych z sekcji pliki do pobrania. W przypadku aplikacji Java opartej na Maven wystarczy dodać następującą konfigurację pom.xml. Następnie możesz wypróbować przykłady z tego artykułu, a także wiele innych przykładów dostępnych na GitHub. Aby uzyskać szczegółowe informacje, odwiedź Odniesienie do interfejsu API.
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-metadata</artifactId>
<version>22.2</version>
</dependency>
Czytaj tagi MP3 ID3 w Javie - ID3v1 i ID3v2
Poniższe kroki pokazują, jak czytać znaczniki MP3 ID3v1 za pomocą języka Java.
- Załaduj plik MP3 przy użyciu klasy Metadata.
- Pobierz MP3RootPackage za pomocą metody getRootPackageGeneric().
- Z pakietu głównego Pobierz każdą z właściwości ID3v1.
Poniższy kod źródłowy Java odczytuje niektóre znaczniki MP3 ID3v1 pliku MP3.
// Czytaj tagi ID3V1 pliku MP3
try (Metadata metadata = new Metadata("path/audio-ID3V1.mp3")) {
MP3RootPackage root = metadata.getRootPackageGeneric();
if (root.getID3V1() != null) {
System.out.println(root.getID3V1().getAlbum());
System.out.println(root.getID3V1().getArtist());
System.out.println(root.getID3V1().getTitle());
System.out.println(root.getID3V1().getVersion());
System.out.println(root.getID3V1().getComment());
// ...
}
}
Możesz wyodrębnić tagi ID3v2 w podobny sposób. Poniższe kroki pokazują, jak pobrać tagi MP3 ID3v2 w Javie.
- Załaduj plik MP3 przy użyciu klasy Metadata.
- Pobierz pakiet główny.
- Z katalogu głównego możesz łatwo pobrać wszystkie tagi ID3v2, takie jak Artysta, Kompozytorzy, Wydawca, Tytuł itp.
- Szczegóły dołączonych zdjęć można pobrać z właściwości Attached Picture Frames.
Poniższy przykład kodu źródłowego Java odczytuje niektóre znaczniki MP3 ID3v2 i załączone zdjęcia, szczegóły pliku MP3.
// Czytaj tagi ID3V2 pliku MP3
try (Metadata metadata = new Metadata("path/audio-ID3V2.mp3")) {
MP3RootPackage root = metadata.getRootPackageGeneric();
if (root.getID3V2() != null) {
System.out.println(root.getID3V2().getAlbum());
System.out.println(root.getID3V2().getArtist());
System.out.println(root.getID3V2().getBand());
System.out.println(root.getID3V2().getTitle());
System.out.println(root.getID3V2().getComposers());
System.out.println(root.getID3V2().getCopyright());
System.out.println(root.getID3V2().getPublisher());
System.out.println(root.getID3V2().getOriginalAlbum());
System.out.println(root.getID3V2().getMusicalKey());
if (root.getID3V2().getAttachedPictures() != null) {
for (ID3V2AttachedPictureFrame attachedPicture : root.getID3V2().getAttachedPictures()) {
System.out.println(attachedPicture.getAttachedPictureType());
System.out.println(attachedPicture.getMimeType());
System.out.println(attachedPicture.getDescription());
}
}
}
}
Czytaj tagi tekstów MP3 w Javie
Poniższe kroki wskazują, jak czytać tagi MP3 Lyrics w Javie.
- Załaduj plik MP3 przy użyciu klasy Metadata.
- Pobierz pakiet główny.
- Z poziomu katalogu głównego możesz uzyskać tagi tekstu i jego właściwości, takie jak tekst, wykonawca, utwór itp.
Poniższy fragment kodu Java pobiera znaczniki tekstu MP3 i niektóre właściwości z pliku MP3.
// Czytaj tagi tekstu pliku MP3
try (Metadata metadata = new Metadata("path/audio-Lyrics.mp3")) {
MP3RootPackage root = metadata.getRootPackageGeneric();
if (root.getLyrics3V2() != null) {
System.out.println(root.getLyrics3V2().getLyrics());
System.out.println(root.getLyrics3V2().getAlbum());
System.out.println(root.getLyrics3V2().getArtist());
System.out.println(root.getLyrics3V2().getTrack());
// ...
// Podobnie możesz przechodzić przez pola znaczników
for (LyricsField field : root.getLyrics3V2().toList()) {
System.out.println(String.format("%s = %s", field.getID(), field.getData()));
}
}
}
Czytaj tagi MP3 APEv2 w Javie
Poniższe kroki pokazują, jak możemy wyodrębnić tagi MP3 APEv2 w aplikacji Java.
- Załaduj plik MP3 przy użyciu klasy Metadata.
- Pobierz pakiet główny przy użyciu metody getRootPackageGeneric().
- Z katalogu głównego możesz pobrać tagi APEv2, takie jak album, gatunek, prawa autorskie, język itp.
Poniższe przykłady kodu Java odczytują niektóre właściwości znaczników MP3 APE pliku MP3.
// Czytaj tagi APE plików MP3
try (Metadata metadata = new Metadata("path/audio-APE.mp3")) {
MP3RootPackage root = metadata.getRootPackageGeneric();
if (root.getApeV2() != null) {
System.out.println(root.getApeV2().getAlbum());
System.out.println(root.getApeV2().getTitle());
System.out.println(root.getApeV2().getArtist());
System.out.println(root.getApeV2().getComposer());
System.out.println(root.getApeV2().getCopyright());
System.out.println(root.getApeV2().getGenre());
System.out.println(root.getApeV2().getLanguage());
// ...
}
Uzyskaj bezpłatną licencję API
Możesz uzyskać bezpłatną tymczasową licencję, aby korzystać z interfejsu API bez ograniczeń ewaluacyjnych.
Wniosek
Podsumowując, nauczyliśmy się wyodrębniać znaczniki metadanych z plików MP3 w Javie. Jeden po drugim odczytujemy tagi ID3v1, ID3v2, Lyrics i APE oraz ich właściwości z plików MP3. Pomyśl o zbudowaniu własnego internetowego edytora tagów MP3 i przeglądarki metadanych, tak jak aplikacja metadanych online.
Dowiedz się więcej o interfejsie API z dokumentacji i skontaktuj się z nami w sprawie zapytań za pośrednictwem forum.