元數據變體附在不同文件格式的文檔中。 MP3 文件通常包含 ID3 元數據標籤。本文討論如何在 Java 中讀取不同的 MP3 標籤。我們將一一介紹如何使用 Java 元數據 API 從 mp3 文件中提取 ID3(IDEv1、ID3v2)、歌詞和 APEv2 元數據標籤。

以下主題涵蓋如下:

用於 MP3 元數據標籤的 Java API

GroupDocs.Metadata 配備了 API 以自動管理 [各種文件格式](https://docs.groupdocs.com/metadata/net/supported-document -格式/)在應用程序中。它的 Java API 允許您讀取、更新、添加、清理和刪除 Java 應用程序中許多文件格式的元數據。我們將使用它來處理 MP3 元數據標籤。

下載和配置

下載 部分獲取元數據庫。對於基於 Maven 的 Java 應用程序,只需添加以下 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>

在 Java 中讀取 MP3 ID3 標籤 - ID3v1 & ID3v2

以下步驟顯示如何使用 Java 讀取 MP3 ID3v1 標籤。

  • 使用 Metadata 類加載 MP3 文件。
  • 使用 getRootPackageGeneric() 方法檢索 MP3RootPackage
  • 從根包中,檢索每個 ID3v1 屬性。

下面的 Java 源代碼讀取了 MP3 文件的一些 MP3 ID3v1 標籤。

// 讀取 MP3 文件 ID3V1 標籤
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 標籤。以下步驟顯示如何在 Java 中檢索 MP3 ID3v2 標籤。

  • 使用 Metadata 類加載 MP3 文件。
  • 獲取 根包
  • 從根目錄,您可以輕鬆檢索所有 ID3v2 標籤,如藝術家、作曲家、出版商、標題等。
  • 可以從 Attached Picture Frames 的屬性中檢索附加圖片的詳細信息。

以下 Java 源代碼示例讀取 MP3 文件的一些 MP3 ID3v2 標籤和附加圖片詳細信息。

// 讀取MP3文件ID3V2標籤
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()); 
            }
        }
    }
}

在 Java 中讀取 MP3 歌詞標籤

以下步驟指導如何在 Java 中讀取 MP3 歌詞標籤。

  • 使用 Metadata 類加載 MP3 文件。
  • 檢索 根包
  • 從根目錄,您可以獲得歌詞標籤及其屬性,如歌詞、藝術家、曲目等。

以下 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()));
		}
	}
}

在 Java 中讀取 MP3 APEv2 標籤

以下步驟展示了我們如何在 Java 應用程序中提取 MP3 APEv2 標籤。

  • 使用 Metadata 類加載 MP3 文件。
  • 使用 getRootPackageGeneric() 方法檢索 root package
  • 從根目錄中,您可以檢索 APEv2 標籤,如專輯、流派、版權、語言等。

以下 Java 代碼示例讀取 MP3 文件的 MP3 APE 標籤的一些屬性。

// 讀取 MP3 文件 APE 標籤
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。

結論

綜上所述,我們學習瞭如何用 Java 從 MP3 文件中提取元數據標籤。我們從 MP3 文件中一一讀取 ID3v1、ID3v2、歌詞和 APE 標籤及其屬性。考慮構建您自己的 MP3 在線標籤編輯器和元數據查看器,就像 Online Metadata App 一樣。

文檔 了解有關 API 的更多信息,並通過論壇 聯繫我們進行查詢。

也可以看看