优化音乐封面, 歌手, 专辑信息的获取

This commit is contained in:
zhaojun1998
2019-09-08 21:06:46 +08:00
parent 0dd57e3889
commit e9cf2af5c4
3 changed files with 60 additions and 48 deletions

View File

@@ -1,15 +1,9 @@
package im.zhaojun.local.service;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.URLUtil;
import cn.hutool.http.HttpUtil;
import com.mpatric.mp3agic.ID3v2;
import com.mpatric.mp3agic.Mp3File;
import im.zhaojun.common.enums.FileTypeEnum;
import im.zhaojun.common.enums.StorageTypeEnum;
import im.zhaojun.common.model.AudioInfo;
import im.zhaojun.common.model.FileItem;
import im.zhaojun.common.model.ImageInfo;
import im.zhaojun.common.model.StorageConfig;
@@ -102,25 +96,6 @@ public class LocalService implements FileService {
return FileUtil.readUtf8String(StringUtils.concatPath(filePath, URLUtil.decode(path)));
}
@Override
public AudioInfo getAudioInfo(String url) throws Exception {
String query = new URL(URLUtil.decode(url)).getQuery();
url = url.replace(query, URLUtil.encode(query));
File file = new File(System.getProperty("user.home") + "/zfile/tmp/audio/" + UUID.fastUUID());
FileUtil.mkParentDirs(file);
HttpUtil.downloadFile(url, file);
Mp3File mp3file = new Mp3File(file);
ID3v2 audioTag = mp3file.getId3v2Tag();
String imageMimeType = audioTag.getAlbumImageMimeType();
AudioInfo audioInfo = new AudioInfo();
audioInfo.setArtist(audioTag.getArtist());
audioInfo.setTitle(audioTag.getTitle());
audioInfo.setCover("data:" + imageMimeType + ";base64," + Base64.encode(audioTag.getAlbumImage()));
audioInfo.setSrc(url);
file.deleteOnExit();
return audioInfo;
}
public String getFilePath() {
return filePath;
}