更换元数据读取库

This commit is contained in:
yutou
2020-10-23 17:55:56 +08:00
parent b0460fbe14
commit 180346963c
6 changed files with 91 additions and 44 deletions

View File

@@ -1,18 +1,16 @@
package com.yutou.tools.utils;
import com.yutou.tools.home.nas.Data.MusicData;
import org.jaudiotagger.audio.AudioFile;
import org.jaudiotagger.audio.AudioFileIO;
import org.jaudiotagger.audio.exceptions.CannotReadException;
import org.jaudiotagger.tag.FieldKey;
import org.jaudiotagger.tag.Tag;
import ealvatag.audio.AudioFile;
import ealvatag.audio.AudioFileIO;
import ealvatag.audio.exceptions.CannotReadException;
import ealvatag.tag.FieldKey;
import ealvatag.tag.NullTag;
import ealvatag.tag.Tag;
import org.springframework.util.StringUtils;
import java.io.*;
import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
import java.util.Objects;
import java.util.*;
public class MusicTools {
public static final int FIND_TITLE = 1;
@@ -21,6 +19,7 @@ public class MusicTools {
private static MusicTools tools;
private String musicPath = "C:\\Users\\admin\\Music";
private final List<MusicData> musicList = new ArrayList<>();
private HashMap<String,List<MusicData>> musicMap=new HashMap<String,List<MusicData>>();
private boolean isScan = false;
public static MusicTools getInstance() {
@@ -29,8 +28,14 @@ public class MusicTools {
}
return tools;
}
private MusicTools(){
scanMusic();
}
public synchronized void scanMusic() {
if(isScan){
return;
}
System.out.println("执行扫描");
musicList.clear();
new Thread(() -> {
@@ -70,11 +75,26 @@ public class MusicTools {
}
}
}
public List<MusicData> getPath(String path){
if(musicMap.containsKey(path)){
return musicMap.get(path);
}
return new ArrayList<>();
}
private void add(File file) {
MusicData data = getMetadata(file);
if (data != null) {
musicList.add(data);
String path=file.getAbsolutePath().replace(file.getName(),"");
List<MusicData> list;
if(musicMap.containsKey(path)){
list=musicMap.get(path);
}else{
list=new ArrayList<>();
}
list.add(data);
musicMap.put(path,list);
}
}
@@ -84,7 +104,7 @@ public class MusicTools {
return null;
}
AudioFile audioFile = AudioFileIO.read(file);
Tag tag = audioFile.getTag();
Tag tag = audioFile.getTag().or(NullTag.INSTANCE);
MusicData data = new MusicData();
try {
data.setAlbum(tag.getFirst(FieldKey.ALBUM));
@@ -197,9 +217,10 @@ public class MusicTools {
}
}
public static void main(String[] args) {
String base = "Wjpc6Z-z5LmQXOOAkOmbqOWuruWkqeOAkU1PUkEg5YWo5aWXMTHlvKBIaXJlc-S4k-i-kVxbMjAyMDA5MDJdIOmbqOWuruWkqSAzcmTjgqLjg6vjg5Djg6DjgIxQYWludCBpdCwgQkxVReOAjVs5NmtIejI0Yml0XVtGTEFDXVwwMDMtRGVmaWFuY2UuZmxhYw==";
System.out.println(new String(Base64.getDecoder().decode(base)));
public static void main(String[] args) throws Exception{
String base = "bXVzaWMuaHRtbDo2MyBaOlzpn7PkuZBc55m75bGx5bCR5aWzXFtzM11bRURd6Imy6YGV44GE44Gu57%2B8XDAyLiAwMiDoibLpgZXjgYTjga7nv7wgKOOBguOBiuOBhOODkOODvOOCuOODp%2BODsykud2F2Cg%3D%3D";
byte[] bytes=getInstance().getMetadata(new File("Z:\\音乐\\BanG Dream!\\Poppin'on!\\B.O.F.flac")).readImage();
System.out.println(bytes.length);
}