Varianty metadat jsou připojeny k dokumentům různých formátů souborů. Soubory MP3 běžně obsahují značky metadat ID3. Tento článek pojednává o tom, jak číst různé značky MP3 v Java. Jeden po druhém uvidíme, jak extrahovat tagy metadat ID3 (IDEv1, ID3v2), Lyrics a APEv2 ze souborů mp3 pomocí Java Metadata API.

Níže jsou uvedena následující témata:

Java API pro značky metadat MP3

GroupDocs.Metadata je vybavena rozhraními API pro automatizaci správy metadat [různých formátů souborů](https://docs.groupdocs.com/metadata/net/supported-document -formáty/) v rámci aplikací. Jeho Java API vám umožňuje číst, aktualizovat, přidávat, čistit a odstraňovat metadata pro mnoho formátů souborů v rámci aplikace Java. Použijeme jej pro práci s tagy metadat MP3.

Stáhnout a nakonfigurovat

Získejte knihovnu metadat ze sekce ke stažení. Pro vaši Java aplikaci založenou na Maven stačí přidat následující konfiguraci pom.xml. Poté si můžete vyzkoušet příklady z tohoto článku a také mnoho dalších příkladů dostupných na GitHubu. Podrobnosti najdete na API Reference.

<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>

Přečtěte si MP3 ID3 Tagy v Java - ID3v1 a ID3v2

Následující kroky ukazují, jak číst tagy MP3 ID3v1 pomocí Java.

  • Načtěte soubor MP3 pomocí třídy Metadata.
  • Načtěte MP3RootPackage pomocí metody getRootPackageGeneric().
  • Z kořenového balíčku načtěte každou z vlastností ID3v1.

Následující zdrojový kód Java čte některé značky MP3 ID3v1 souboru MP3.

// Přečtěte si tagy ID3V1 souboru 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());
		// ...
	}
}

Tagy ID3v2 můžete extrahovat podobným způsobem. Následující kroky ukazují, jak načíst MP3 ID3v2 tagy v Java.

  • Načtěte soubor MP3 pomocí třídy Metadata.
  • Získejte kořenový balíček.
  • Z kořene můžete snadno načíst všechny značky ID3v2, jako je umělec, skladatelé, vydavatel, název atd.
  • Podrobnosti o připojených obrázcích lze získat z vlastností Attached Picture Frames.

Následující příklad zdrojového kódu Java čte některé značky MP3 ID3v2 a připojené obrázky podrobností souboru MP3.

// Přečtěte si tagy ID3V2 souboru 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()); 
            }
        }
    }
}

Přečtěte si značky MP3 Lyrics v Java

Následující kroky vedou, jak číst značky MP3 Lyrics v Java.

  • Načtěte soubor MP3 pomocí třídy Metadata.
  • Načtěte kořenový balíček.
  • Z kořene můžete získat značky textů a jejich vlastnosti, jako je text, interpret, skladba atd.

Následující fragment kódu Java načítá značky MP3 textů a některé vlastnosti ze souboru MP3.

// Číst značky textů souborů 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());
		// ...

    // Podobně můžete procházet pole tagů
		for (LyricsField field : root.getLyrics3V2().toList()) {
			System.out.println(String.format("%s = %s", field.getID(), field.getData()));
		}
	}
}

Přečtěte si MP3 APEv2 Tagy v Java

Následující kroky ukazují, jak můžeme extrahovat značky MP3 APEv2 v aplikaci Java.

  • Načtěte soubor MP3 pomocí třídy Metadata.
  • Načtěte kořenový balíček pomocí metody getRootPackageGeneric().
  • Z kořene můžete načíst značky APEv2, jako je album, žánr, autorská práva, jazyk atd.

Následující příklady kódu Java čtou některé vlastnosti MP3 APE tagů souboru MP3.

// Čtení značek APE souborů 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());
		// ...
	}

Získejte bezplatnou licenci API

Můžete získat bezplatnou dočasnou licenci k používání API bez omezení hodnocení.

Závěr

Abych to shrnul, naučili jsme se, jak extrahovat značky metadat ze souborů MP3 v Java. Jeden po druhém čteme značky ID3v1, ID3v2, Lyrics a APE a jejich vlastnosti ze souborů MP3. Přemýšlejte o vytvoření vlastního online editoru značek MP3 a prohlížeče metadat, jako je Online Metadata App.

Další informace o rozhraní API naleznete v dokumentaci a v případě dotazů nás kontaktujte prostřednictvím fóra.

Viz také