แยกข้อมูลเมตาของไฟล์ MP3 โดยใช้ REST API ใน Java

คุณสามารถเพิ่ม แก้ไข ลบ หรือแยกคุณสมบัติต่างๆ ของไฟล์เสียงที่จัดเก็บในรูปแบบของข้อมูลเมตาโดยทางโปรแกรม คุณสามารถแยกคุณสมบัติของข้อมูลเมตา เช่น ชื่อ ศิลปิน และแนวเพลงจากไฟล์เสียงโดยทางโปรแกรมบนคลาวด์ได้อย่างง่ายดาย ในบทความนี้ คุณจะได้เรียนรู้วิธีแยกข้อมูลเมตาของไฟล์เสียง MP3 โดยใช้ REST API ใน Java

หัวข้อต่อไปนี้จะกล่าวถึง/ครอบคลุมในบทความนี้:

MP3 Metadata Extraction REST API และ Java SDK

ฉันจะใช้ Java SDK ของ GroupDocs.Metadata Cloud API เพื่อแยกข้อมูลเมตาของไฟล์เสียง MP3 ช่วยให้คุณสามารถเพิ่ม แก้ไข ดึงข้อมูล และลบคุณสมบัติข้อมูลเมตาจากเอกสาร รูปภาพ และรูปแบบไฟล์มัลติมีเดียกว่า 60 ชนิด คุณเพียงแค่ต้องกำหนดเกณฑ์การค้นหาและ API จะดูแลการดำเนินการข้อมูลเมตาที่ระบุภายใน รูปแบบไฟล์ที่รองรับ API ทำงานร่วมกับมาตรฐานข้อมูลเมตาที่โดดเด่นที่สุด เช่น ในตัว, XMP, EXIF, IPTC, Image Resource Blocks, ID3 และคุณสมบัติข้อมูลเมตาที่กำหนดเอง นอกจากนี้ยังมี .NET SDK เป็น สมาชิกในครอบครัวการจัดการข้อมูลเมตาของเอกสาร สำหรับ Cloud API

คุณสามารถใช้ GroupDocs.Metadata Cloud ในแอปพลิเคชัน Java ที่ใช้ Maven ได้ง่ายๆ โดยเพิ่มการกำหนดค่า pom.xml ต่อไปนี้

<repository>
    <id>groupdocs-artifact-repository</id>
    <name>GroupDocs Artifact Repository</name>
    <url>http://repository.groupdocs.cloud/repo</url>
</repository>
<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-metadata-cloud</artifactId>
    <version>20.4</version>
    <scope>compile</scope>
</dependency>

โปรดรับรหัสไคลเอนต์และข้อมูลลับของคุณจาก แดชบอร์ด ก่อนทำตามขั้นตอนดังกล่าว เมื่อคุณมี ID และรหัสลับของคุณแล้ว ให้เพิ่มรหัสตามที่แสดงด้านล่าง:

String clientId = "da0c487d-c1c0-45ae-b7bf-43eaf53c5ad5";
String clientSecret = "479db2b01dcb93a3d4d20efb16dea971";
String myStorage = "";

Configuration configuration = new Configuration(clientId, clientSecret);

แยกข้อมูลเมตาของไฟล์ MP3 โดยใช้ REST API ใน Java

คุณสามารถดึงข้อมูลเมตาของไฟล์เสียง MP3 ได้โดยทำตามขั้นตอนง่ายๆ ด้านล่าง:

  1. อัปโหลด ไฟล์ MP3 ไปยังคลาวด์
  2. ดึงข้อมูลเมตาของไฟล์เสียง MP3 โดยใช้ Java

อัพโหลดไฟล์

ประการแรก อัปโหลดไฟล์เสียง MP3 ไปยังคลาวด์โดยใช้ตัวอย่างโค้ดที่ระบุด้านล่าง:

// การเริ่มต้น API
FileApi apiInstance = new FileApi(clientId, clientSecret);

// ไฟล์อินพุต
File fileStream = new File("C:\\Files\\sample.mp3");

// สร้างคำขออัปโหลดไฟล์
UploadFileRequest request = new UploadFileRequest("sample.mp3", fileStream, myStorage);

// อัพโหลดไฟล์
FilesUploadResult response = apiInstance.uploadFile(request);

ด้วยเหตุนี้ ไฟล์ MP3 ที่อัปโหลดจะอยู่ใน ส่วนไฟล์ ของแดชบอร์ดของคุณบนระบบคลาวด์

แยกข้อมูลเมตาของไฟล์เสียง MP3 โดยใช้ Java

คุณสามารถแยกคุณสมบัติข้อมูลเมตาทั้งหมดของไฟล์เสียง MP3 โดยทางโปรแกรมโดยทำตามขั้นตอนด้านล่าง

  • สร้างอินสแตนซ์ของ MetadataApi
  • สร้างอินสแตนซ์ของ FileInfo
  • กำหนดเส้นทางไฟล์ MP3
  • สร้างอินสแตนซ์ของ ExtractOptions
  • กำหนด FileInfo ให้กับ ExtractOptions
  • สร้าง ExtractRequest
  • เรียกเมธอด MetadataApi.extract() และรับผลลัพธ์

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกข้อมูลเมตาของไฟล์ MP3 โดยใช้ REST API

// เริ่มต้น API
MetadataApi apiInstance = new MetadataApi(configuration);

// กำหนดตัวเลือกการแยก
ExtractOptions options = new ExtractOptions();
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
options.setFileInfo(fileInfo);

// สร้างคำขอแยก
ExtractRequest request = new ExtractRequest(options);
ExtractResult response = apiInstance.extract(request);

// แสดงผล
for (MetadataPackage metaPackage : response.getMetadataTree().getInnerPackages()) {
  for(MetadataProperty entry : metaPackage.getPackageProperties()) {
    System.out.println(entry.getName() + ": " + entry.getValue());
    if (entry.getTags() == null)
      continue;
   for (Tag tagItem : entry.getTags()) {
      System.out.println(
          "Tag for property: name - " + tagItem.getName() + ", category - " + tagItem.getCategory());
    }
  }
}
FileFormat: 21
Tag for property: name - FileFormat, category - Content
MimeType: audio/mpeg
Tag for property: name - FileFormat, category - Content
HeaderPosition: 2402
MpegAudioVersion: 3
Layer: 3
HasCrc: True
Bitrate: 224
Frequency: 32000
PaddingBit: 0
PrivateBit: False
Channel: 0
ModeExtensionBits: 0
Copyright: False
Original: True
Emphasis: 0
Version: ID3v1.1
Genre: 255
Album: YouTube Audio Library
Artist: Kevin MacLeod
Comment: This is sample comment.
Tag for property: name - Comment, category - Content
Title: Impact Moderato
Tag for property: name - Title, category - Content
Year: 2021
Tag for property: name - IntellectualContentCreated, category - Time
TrackNumber: 1
Version: ID3v2.3.0
TagSize: 2402
TALB: null
TPE1: null
TPE2: null
COMM: null
Tag for property: name - Comment, category - Content
TCOM: null
TPOS: null
TCON: null
TIT2: null
Tag for property: name - Title, category - Content
TRCK: null
TYER: null
Tag for property: name - IntellectualContentCreated, category - Time
title: Impact Moderato
Tag for property: name - Title, category - Content
artist: Kevin MacLeod
album: YouTube Audio Library
year: 2021
track: 1
genre: Cinematic
Tag for property: name - Type, category - Content
comment: This is sample comment.
Tag for property: name - Comment, category - Content
albumartist: MacLeod Kevin
composer: Kevin
discnumber: 101 

การสกัดข้อมูลเมตาโดยจับคู่วลีที่ตรงทั้งหมดโดยใช้ Java

คุณสามารถแยกคุณสมบัติข้อมูลเมตาของไฟล์ MP3 ที่ตรงกับวลีโดยทำตามขั้นตอนด้านล่าง:

  • สร้างอินสแตนซ์ของ MetadataApi
  • สร้างอินสแตนซ์ของ MatchOptions และตั้งค่า ExactPhase เป็นจริง
  • เริ่มต้นอินสแตนซ์ของ NameOptions
  • ระบุค่าที่ตรงกันและตั้งค่า MatchOptions
  • สร้างอินสแตนซ์ของ SearchCriteria และตั้งค่า NameOptions
  • สร้างอินสแตนซ์ของ FileInfo
  • กำหนดเส้นทางไฟล์ MP3
  • สร้างอินสแตนซ์ของ ExtractOptions
  • กำหนด SearchCriteria และ FileInfo ที่กำหนดไว้ให้กับ ExtractOptions
  • สร้าง ExtractRequest
  • เรียกเมธอด MetadataApi.extract() และรับผลลัพธ์

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกข้อมูลเมตาโดยจับคู่วลีที่ตรงทั้งหมดโดยใช้ REST API

// เริ่มต้น API
MetadataApi apiInstance = new MetadataApi(configuration);

// สร้างตัวเลือกการจับคู่
MatchOptions matchOptions = new MatchOptions();
matchOptions.setExactPhrase(true);

// สร้างตัวเลือกชื่อ
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("MimeType");
nameOptions.setMatchOptions(matchOptions);

// กำหนดเกณฑ์การค้นหา
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);

// กำหนดตัวเลือกการแยก
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);

// ให้ไฟล์อินพุต
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
options.setFileInfo(fileInfo);

// สร้างคำขอแยก
ExtractRequest request = new ExtractRequest(options);
ExtractResult response = apiInstance.extract(request);

// แสดงผล
for (MetadataProperty entry : response.getProperties()) {
  System.out.println(entry.getName() + ": " + entry.getValue());
  if (entry.getTags() == null)
    continue;
 for (Tag tagItem : entry.getTags()) {
    System.out.println(
        "Tag for property: name - " + tagItem.getName() + ", category - " + tagItem.getCategory());
  }
}
MimeType: audio/mpeg
Tag for property: name - FileFormat, category - Content

การสกัดข้อมูลเมตาโดย Regular Expression โดยใช้ Java

คุณสามารถกำหนดเกณฑ์การค้นหาเพื่อแยกข้อมูลเมตาของไฟล์ MP3 โดยใช้นิพจน์ทั่วไปโดยทำตามขั้นตอนด้านล่าง:

  • สร้างอินสแตนซ์ของ MetadataApi
  • เริ่มต้นอินสแตนซ์ของ MatchOptions และตั้งค่า IsRegex เป็นจริง
  • สร้างอินสแตนซ์ของ NameOptions
  • ระบุนิพจน์ทั่วไปและตั้งค่า MatchOptions
  • สร้างอินสแตนซ์ของ SearchCriteria และตั้งค่า NameOptions
  • สร้างอินสแตนซ์ของ FileInfo
  • กำหนดเส้นทางไฟล์ MP3
  • สร้างอินสแตนซ์ของ ExtractOptions
  • กำหนด SearchCriteria และ FileInfo ที่กำหนดไว้ให้กับ ExtractOptions
  • สร้าง ExtractRequest
  • เรียกเมธอด MetadataApi.extract() และรับผลลัพธ์

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกการค้นหาข้อมูลเมตาด้วยนิพจน์ทั่วไปโดยใช้ REST API

// เริ่มต้น API
MetadataApi apiInstance = new MetadataApi(configuration);

// สร้างตัวเลือกการจับคู่
MatchOptions matchOptions = new MatchOptions();
matchOptions.setIsRegex(true);

// สร้างตัวเลือกชื่อ
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("^Co.*");
nameOptions.setMatchOptions(matchOptions);

// กำหนดเกณฑ์การค้นหา
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);

// กำหนดตัวเลือกการแยก
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);

// ให้ไฟล์อินพุต
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
options.setFileInfo(fileInfo);

// สร้างคำขอแยก
ExtractRequest request = new ExtractRequest(options);
ExtractResult response = apiInstance.extract(request);

for (MetadataProperty entry : response.getProperties()) {
  System.out.println(entry.getName() + ": " + entry.getValue());
  if (entry.getTags() == null)
    continue;
 for (Tag tagItem : entry.getTags()) {
    System.out.println(
        "Tag for property: name - " + tagItem.getName() + ", category - " + tagItem.getCategory());
  }
}
Copyright: False
Comment: This is sample comment.
Tag for property: name - Comment, category - Content
COMM: GroupDocs.Metadata.Formats.Audio.ID3V2CommentFrame
Tag for property: name - Comment, category - Content
CommEncoding: 1
CommLanguage: eng
CommShortContentDescription: 
CommText: This is sample comment.
comment: This is sample comment.
Tag for property: name - Comment, category - Content
composer: Kevin 

แยกข้อมูลเมตาตามชื่อคุณสมบัติโดยใช้ Java

คุณสามารถกำหนดเกณฑ์การค้นหาเพื่อแยกข้อมูลเมตาของไฟล์ MP3 สำหรับคุณสมบัติเฉพาะโดยทำตามขั้นตอนด้านล่าง:

  • สร้างอินสแตนซ์ของ MetadataApi
  • เริ่มต้นอินสแตนซ์ของ NameOptions และตั้งค่า
  • สร้างอินสแตนซ์ของ SearchCriteria และตั้งค่า NameOptions
  • สร้างอินสแตนซ์ของ FileInfo
  • กำหนดเส้นทางไฟล์ MP3
  • สร้างอินสแตนซ์ของ ExtractOptions
  • กำหนด SearchCriteria และ FileInfo ที่กำหนดไว้ให้กับ ExtractOptions
  • สร้าง ExtractRequest
  • เรียกเมธอด MetadataApi.extract() และรับผลลัพธ์

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกข้อมูลเมตาโดยการค้นหาชื่อคุณสมบัติโดยใช้ REST API

// เริ่มต้น API
MetadataApi apiInstance = new MetadataApi(configuration);

// สร้างตัวเลือกชื่อ
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("Artist");

// กำหนดเกณฑ์การค้นหา
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);

// ให้ไฟล์อินพุต
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");

// กำหนดตัวเลือกการแยก
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);
options.setFileInfo(fileInfo);

// สร้างคำขอแยก
ExtractRequest request = new ExtractRequest(options);
ExtractResult response = apiInstance.extract(request);

for (MetadataProperty entry : response.getProperties()) {
  System.out.println(entry.getName() + ": " + entry.getValue());
  if (entry.getTags() == null)
    continue;
 for (Tag tagItem : entry.getTags()) {
    System.out.println(
        "Tag for property: name - " + tagItem.getName() + ", category - " + tagItem.getCategory());
  }
}
Artist: Kevin MacLeod
artist: Kevin MacLeod
albumartist: MacLeod Kevin

แยกข้อมูลเมตาตามค่าคุณสมบัติโดยใช้ Java

คุณสามารถกำหนดเกณฑ์การค้นหาเพื่อแยกข้อมูลเมตาของไฟล์ MP3 ที่ตรงกับค่าคุณสมบัติโดยทำตามขั้นตอนด้านล่าง:

  • สร้างอินสแตนซ์ของ MetadataApi
  • สร้างอินสแตนซ์ของ ValueOptions
  • ระบุค่าที่จะค้นหาและประเภทของมัน
  • สร้างอินสแตนซ์ของ SearchCriteria และตั้งค่า ValueOptions
  • สร้างอินสแตนซ์ของ FileInfo
  • กำหนดเส้นทางไฟล์ MP3
  • สร้างอินสแตนซ์ของ ExtractOptions
  • กำหนด SearchCriteria และ FileInfo ที่กำหนดไว้ให้กับ ExtractOptions
  • สร้าง ExtractRequest
  • เรียกเมธอด MetadataApi.extract() และรับผลลัพธ์

ข้อมูลโค้ดต่อไปนี้แสดงวิธีแยกข้อมูลเมตาโดยการค้นหาค่าคุณสมบัติโดยใช้ REST API

// เริ่มต้น API
MetadataApi apiInstance = new MetadataApi(configuration);

// สร้างตัวเลือกที่คุ้มค่า
ValueOptions valueOptions = new ValueOptions();
valueOptions.setValue("Impact Moderato");
valueOptions.setType("string");

// กำหนดเกณฑ์การค้นหา
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setValueOptions(valueOptions);

// ให้ไฟล์อินพุต
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");

// กำหนดตัวเลือกการแยก
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);
options.setFileInfo(fileInfo);

// สร้างคำขอแยก
ExtractRequest request = new ExtractRequest(options);
ExtractResult response = apiInstance.extract(request);

for (MetadataProperty entry : response.getProperties()) {
  System.out.println(entry.getName() + ": " + entry.getValue());
  if (entry.getTags() == null)
    continue;
 for (Tag tagItem : entry.getTags()) {
    System.out.println(
        "Tag for property: name - " + tagItem.getName() + ", category - " + tagItem.getCategory());
  }
}
Title: Impact Moderato
Tag for property: name - Title, category - Content
TextValue: Impact Moderato

ลองออนไลน์

โปรดลองใช้เครื่องมือแยกข้อมูลเมตา MP3 ออนไลน์ฟรีต่อไปนี้ ซึ่งพัฒนาโดยใช้ API ข้างต้น https://products.groupdocs.app/metadata/total

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีแยก Metadata ของไฟล์เสียง MP3 บนคลาวด์ คุณยังได้เรียนรู้วิธีแยกข้อมูลเมตาโดยกำหนดเกณฑ์การค้นหา เช่น จับคู่วลีที่ตรงทั้งหมด ใช้นิพจน์ทั่วไป และตามชื่อคุณสมบัติหรือค่า บทความนี้ยังอธิบายวิธีการอัปโหลดไฟล์เสียง MP3 บนระบบคลาวด์โดยทางโปรแกรม คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับการแยก GroupDocs.Metadata Cloud API โดยใช้ เอกสารประกอบ เรายังมีส่วน API Reference ที่ช่วยให้คุณแสดงภาพและโต้ตอบกับ API ของเราได้โดยตรงผ่านเบราว์เซอร์ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราได้ที่ ฟอรัม

ดูสิ่งนี้ด้วย