Các biến thể siêu dữ liệu được đính kèm với các tài liệu có định dạng tệp khác nhau. Các tệp MP3 thường chứa các thẻ siêu dữ liệu ID3. Bài viết này thảo luận về cách đọc các thẻ MP3 khác nhau trong Java. Từng cái một, chúng ta sẽ xem cách trích xuất các thẻ siêu dữ liệu ID3 (IDEv1, ID3v2), Lời bài hát và APEv2 từ các tệp mp3 bằng API siêu dữ liệu Java.

Các chủ đề sau đây được đề cập dưới đây:

API Java cho thẻ siêu dữ liệu MP3

GroupDocs.Metadata được trang bị các API để tự động hóa việc quản lý siêu dữ liệu của [các định dạng tệp khác nhau](https://docs.groupdocs.com/metadata/net/supported-document -formats/) trong các ứng dụng. Đó là API Java cho phép bạn đọc, cập nhật, thêm, xóa và xóa siêu dữ liệu cho nhiều định dạng tệp trong ứng dụng Java. Chúng tôi sẽ sử dụng nó để làm việc với các thẻ siêu dữ liệu MP3.

Tải xuống và định cấu hình

Tải thư viện siêu dữ liệu từ phần tải xuống. Đối với ứng dụng Java dựa trên Maven của bạn, chỉ cần thêm cấu hình pom.xml sau. Sau đó, bạn có thể thử các ví dụ của bài viết này cũng như nhiều ví dụ khác có sẵn trên GitHub. Để biết chi tiết, bạn có thể truy cập Tham khảo 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>

Đọc thẻ MP3 ID3 trong Java - ID3v1 & ID3v2

Các bước sau đây cho biết cách đọc các thẻ MP3 ID3v1 bằng Java.

  • Tải tệp MP3 bằng lớp Siêu dữ liệu.
  • Truy xuất MP3RootPackage bằng phương thức getRootPackageGeneric().
  • Từ gói gốc, truy xuất từng thuộc tính ID3v1.

Mã nguồn Java sau đọc một số thẻ MP3 ID3v1 của tệp MP3.

// Đọc các thẻ ID3V1 của tệp 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());
		// ...
	}
}

Bạn có thể trích xuất các thẻ ID3v2 theo cách tương tự. Các bước sau đây cho biết cách truy xuất các thẻ MP3 ID3v2 trong Java.

  • Tải tệp MP3 bằng lớp Siêu dữ liệu.
  • Lấy gói gốc.
  • Từ thư mục gốc, bạn có thể dễ dàng truy xuất tất cả các thẻ ID3v2 như Nghệ sĩ, Nhà soạn nhạc, Nhà xuất bản, Tiêu đề, v.v.
  • Bạn có thể truy xuất thông tin chi tiết về ảnh đính kèm từ các thuộc tính của Khung ảnh đính kèm.

Ví dụ về mã nguồn Java sau đây đọc một số thẻ MP3 ID3v2 và hình ảnh đính kèm chi tiết của tệp MP3.

// Đọc các thẻ ID3V2 của tệp 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()); 
            }
        }
    }
}

Đọc thẻ lời bài hát MP3 trong Java

Các bước sau đây hướng dẫn cách đọc các thẻ Lời bài hát MP3 trong Java.

  • Tải tệp MP3 bằng lớp Siêu dữ liệu.
  • Truy xuất gói gốc.
  • Từ thư mục gốc, bạn có thể nhận các thẻ lời bài hát và các thuộc tính của nó như Lời bài hát, nghệ sĩ, bản nhạc, v.v.

Đoạn mã Java sau truy xuất các thẻ lời bài hát MP3 và một số thuộc tính từ tệp MP3.

// Đọc tập tin MP3 Thẻ lời bài hát
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());
		// ...

    // Tương tự, bạn có thể duyệt qua các trường thẻ
		for (LyricsField field : root.getLyrics3V2().toList()) {
			System.out.println(String.format("%s = %s", field.getID(), field.getData()));
		}
	}
}

Đọc thẻ MP3 APEv2 trong Java

Các bước sau đây cho thấy cách chúng tôi có thể trích xuất các thẻ MP3 APEv2 trong ứng dụng Java.

  • Tải tệp MP3 bằng lớp Siêu dữ liệu.
  • Truy xuất gói gốc bằng phương thức getRootPackageGeneric().
  • Từ thư mục gốc, bạn có thể truy xuất các thẻ APEv2 như Album, Thể loại, Bản quyền, Ngôn ngữ, v.v.

Các ví dụ mã Java sau đọc một số thuộc tính của thẻ MP3 APE của tệp MP3.

// Đọc thẻ APE của tệp 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());
		// ...
	}

Nhận giấy phép API miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để sử dụng API mà không bị giới hạn đánh giá.

Sự kết luận

Tóm lại, chúng ta đã học cách trích xuất các thẻ siêu dữ liệu từ các tệp MP3 trong Java. Lần lượt, chúng tôi đọc các thẻ ID3v1, ID3v2, Lời bài hát và APE cũng như các thuộc tính của chúng từ các tệp MP3. Hãy nghĩ đến việc xây dựng trình chỉnh sửa thẻ trực tuyến & trình xem siêu dữ liệu MP3 của riêng bạn giống như Ứng dụng siêu dữ liệu trực tuyến.

Tìm hiểu thêm về API từ tài liệu và liên hệ với chúng tôi nếu có thắc mắc qua diễn đàn.

Xem thêm