Варіанти метаданих додаються до документів різних форматів файлів. Файли MP3 зазвичай містять теги метаданих ID3. У цій статті обговорюється, як читати різні теги MP3 у Java. Один за іншим ми побачимо, як витягти теги метаданих ID3 (IDEv1, ID3v2), Lyrics і APEv2 із файлів mp3 за допомогою Java Metadata API.

Нижче описано наступні теми:

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 з документації та зв’яжіться з нами для запитів через форум.

Дивись також