Buenas, tengo una pequeña duda con respecto a calcular la duración de una canción utilizando java. tengo el tamaño del fichero, pero me gustaría saber si existe alguna forma de calcular la duración exacta , un saludo.
Buscando en google
Utiliza Java Media Framework (ojo! puede estar obsoleto, seguramente haya alguna cosa por ahi mas moderna...)
Player player = Manager.createPlayer(new MediaLocator(new File(con[found+1]).toURL().toExternalForm()));
Time t = player.getDuration();
Double time = t.getSeconds() / 60;
System.out.println(time);
#1 si puedes obtener el tamaño de la cancion y el bitrate, es matemática pura ^^ (no tengo ni idea de java, te he dao la solucion matematica)
Bueno, por si a alguien le interesa en un futuro como averiguar el tamaño de una canción le dejo aquí el código:
private static String toTime(double seconds) {
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.add(Calendar.MILLISECOND, (int)(seconds * 1000));
SimpleDateFormat format = new SimpleDateFormat("mm:ss");
return format.format(calendar.getTime());
}
public static String getPlayer(File file) throws IOException, NoPlayerException, CannotRealizeException {
Player player = null;
try {
player = Manager.createRealizedPlayer(new URL("file:///" + file.toString()));
String duracion=toTime(player.getDuration().getSeconds());
return duracion;
} catch (MalformedURLException ex) {
ex.printStackTrace();
} catch (CannotRealizeException ex) {
ex.printStackTrace();
} catch (NoPlayerException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
return null;
}
Un saludo y gracias por vuestro tiempo ^^