Варіанти метаданих додаються до документів різних форматів файлів. Файли MP3 зазвичай містять теги метаданих ID3. У цій статті обговорюється, як читати різні теги MP3 у Java. Один за іншим ми побачимо, як витягти теги метаданих ID3 (IDEv1, ID3v2), Lyrics і APEv2 із файлів mp3 за допомогою Java Metadata API.
Нижче описано наступні теми:
- Java API для керування тегами MP3
- Читання тегів MP3 ID3 - ID3v1 і ID3v2
- Отримайте теги текстів MP3
- Отримати теги MP3 APEv2
API Java для тегів метаданих MP3
GroupDocs.Metadata оснащено API для автоматизації керування метаданими [різних форматів файлів](https://docs.groupdocs.com/metadata/net/supported-document -formats/) у програмах. Його Java API дозволяє читати, оновлювати, додавати, очищати та видаляти метадані для багатьох форматів файлів у програмі Java. Ми будемо використовувати його для роботи з тегами метаданих MP3.
Завантажте та налаштуйте
Отримайте бібліотеку метаданих із розділу завантажень. Для програми Java на основі Maven просто додайте наступну конфігурацію pom.xml. Після цього ви можете спробувати приклади з цієї статті, а також багато інших прикладів, доступних на GitHub. Щоб отримати докладніші відомості, ви можете відвідати Довідник 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>
Читання тегів MP3 ID3 у Java - ID3v1 та ID3v2
Наступні кроки показують, як читати теги MP3 ID3v1 за допомогою Java.
- Завантажте файл MP3 за допомогою класу Metadata.
- Отримайте MP3RootPackage за допомогою методу getRootPackageGeneric().
- З кореневого пакета отримайте кожну з властивостей ID3v1.
Наступний вихідний код Java зчитує деякі теги MP3 ID3v1 у файлі MP3.
// Читання тегів ID3V1 файлу 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());
// ...
}
}
Подібним чином можна видобути теги ID3v2. Наступні кроки показують, як отримати теги MP3 ID3v2 у Java.
- Завантажте файл MP3 за допомогою класу Metadata.
- Отримайте кореневий пакет.
- З кореневої папки ви можете легко отримати всі теги ID3v2, такі як Artist, Composers, Publisher, Title тощо.
- Деталі долучених зображень можна отримати у властивостях Прикріплені фоторамки.
У наведеному нижче прикладі вихідного коду Java зчитуються деякі теги MP3 ID3v2 і додані зображення файлу MP3.
// Читання тегів ID3V2 файлу 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());
}
}
}
}
Читайте теги текстів MP3 у Java
У наступних кроках описано, як читати теги MP3 Lyrics у Java.
- Завантажте файл MP3 за допомогою класу Metadata.
- Отримайте кореневий пакет.
- З кореня ви можете отримати теги тексту та його властивості, як-от текст, виконавець, трек тощо.
Наступний фрагмент коду Java отримує теги MP3-лірики та деякі властивості з файлу MP3.
// Читайте теги тексту файлу 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());
// ...
// Подібним чином ви можете переходити між полями тегів
for (LyricsField field : root.getLyrics3V2().toList()) {
System.out.println(String.format("%s = %s", field.getID(), field.getData()));
}
}
}
Читайте теги MP3 APEv2 у Java
Наступні кроки показують, як ми можемо видобути теги MP3 APEv2 у програмі Java.
- Завантажте файл MP3 за допомогою класу Metadata.
- Отримайте кореневий пакет за допомогою методу getRootPackageGeneric().
- З кореневого каталогу ви можете отримати теги APEv2, як-от альбом, жанр, авторські права, мова тощо.
У наступних прикладах коду Java читаються деякі властивості тегів MP3 APE файлу MP3.
// Читання тегів APE файлу 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());
// ...
}
Отримайте безкоштовну ліцензію API
Ви можете отримати безкоштовну тимчасову ліцензію, щоб використовувати API без оціночних обмежень.
Висновок
Підводячи підсумок, ми навчилися витягувати теги метаданих із MP3-файлів у Java. Один за одним ми зчитуємо теги ID3v1, ID3v2, Lyrics і APE та їхні властивості з файлів MP3. Подумайте про створення власного онлайн-редактора MP3-тегів і засобу перегляду метаданих, як онлайн-додаток метаданих.
Дізнайтеся більше про API з документації та зв’яжіться з нами для запитів через форум.