🔖 版本更新

This commit is contained in:
zhaojun1998
2019-12-01 21:19:36 +08:00
parent 8f17423e1b
commit 9a7a6fb165
1375 changed files with 2429 additions and 367598 deletions

View File

@@ -1,23 +1,49 @@
package im.zhaojun.common.util;
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.*;
import im.zhaojun.common.model.AudioInfo;
import im.zhaojun.common.model.constant.ZFileConstant;
import im.zhaojun.common.model.dto.AudioInfoDTO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.IOException;
import java.net.URL;
/**
* 音频解析工具类
*/
public class AudioHelper {
private static final Logger log = LoggerFactory.getLogger(AudioHelper.class);
public static AudioInfo parseAudioInfo(File file) throws InvalidDataException, IOException, UnsupportedTagException {
AudioInfo audioInfo = new AudioInfo();
audioInfo.setTitle("未知歌曲");
audioInfo.setArtist("未知");
audioInfo.setCover("/shikwasa/audio.png");
public static AudioInfoDTO getAudioInfo(String url) throws Exception {
String query = new URL(URLUtil.decode(url)).getQuery();
if (query != null) {
url = url.replace(query, URLUtil.encode(query));
}
File file = new File(ZFileConstant.USER_HOME + ZFileConstant.AUDIO_TMP_PATH + UUID.fastUUID());
FileUtil.mkParentDirs(file);
HttpUtil.downloadFile(url, file);
AudioInfoDTO audioInfoDTO = parseAudioInfo(file);
audioInfoDTO.setSrc(url);
file.deleteOnExit();
return audioInfoDTO;
}
private static AudioInfoDTO parseAudioInfo(File file) throws IOException, UnsupportedTagException {
AudioInfoDTO audioInfoDTO = new AudioInfoDTO();
audioInfoDTO.setTitle("未知歌曲");
audioInfoDTO.setArtist("未知");
audioInfoDTO.setCover("/shikwasa/audio.png");
Mp3File mp3File = null;
try {
@@ -29,7 +55,7 @@ public class AudioHelper {
}
if (mp3File == null) {
return audioInfo;
return audioInfoDTO;
}
ID3v1 audioTag = null;
@@ -38,16 +64,16 @@ public class AudioHelper {
ID3v2 id3v2Tag = mp3File.getId3v2Tag();
byte[] albumImage = id3v2Tag.getAlbumImage();
if (albumImage != null) {
audioInfo.setCover("data:" + id3v2Tag.getAlbumImageMimeType() + ";base64," + Base64.encode(albumImage));
audioInfoDTO.setCover("data:" + id3v2Tag.getAlbumImageMimeType() + ";base64," + Base64.encode(albumImage));
}
audioTag = id3v2Tag;
}
if (audioTag != null) {
audioInfo.setTitle(audioTag.getTitle());
audioInfo.setArtist(audioTag.getArtist());
audioInfoDTO.setTitle(audioTag.getTitle());
audioInfoDTO.setArtist(audioTag.getArtist());
}
return audioInfo;
return audioInfoDTO;
}
}