package me.mctp.utils; import com.mpatric.mp3agic.InvalidDataException; import com.mpatric.mp3agic.Mp3File; import com.mpatric.mp3agic.UnsupportedTagException; import org.apache.commons.io.FilenameUtils; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; public class HeadUtil { public static String getArgument(String selector, String key) { StringBuilder result = new StringBuilder(); String[] arguments = selector.split(key + "="); if (arguments.length == 1) return ""; for (byte type : arguments[1].getBytes()) { char element = (char) type; if (element == ',' || element == ']') { return result.toString(); } else { result.append(element); } } return result.toString().replaceAll("\\.", ""); } private static String downloadFromUrl(URL url, String localFilename) throws IOException { InputStream is = null; FileOutputStream fos = null; String tempDir = System.getProperty("java.io.tmpdir"); String outputPath = tempDir + "/" + localFilename; try { //connect URLConnection urlConn = url.openConnection(); //get inputstream from connection is = urlConn.getInputStream(); fos = new FileOutputStream(outputPath); // 4KB buffer byte[] buffer = new byte[4096]; int length; // read from source and write into local file while ((length = is.read(buffer)) > 0) { fos.write(buffer, 0, length); } return outputPath; } finally { try { if (is != null) { is.close(); } } finally { if (fos != null) { fos.close(); } } } } public static int getTicksOfFile(String input) throws IOException, InvalidDataException, UnsupportedTagException { URL url = new URL(input); String result = downloadFromUrl(url, FilenameUtils.getName(url.getPath())); File file = new File(result); if (!file.exists()) return 0; Mp3File mp3File = new Mp3File(file); long sec = mp3File.getLengthInSeconds(); file.delete(); return (int) (sec * 20); } }