MP3 Lied länge auslesen mit JMF

Pommes9485

Bekanntes Mitglied
Guten Tag,

Wenn ich mit :
Java:
playMP3.start();
 try{
 sleep(1000);}catch(InterruptedException io){io.getMessage();}
 Time time = playMP3.getDuration();
long lDuration = Math.round(time.getMinutes());
System.out.println("Dauer: " + lDuration);

Die Zeit hole, stimmt die Zeit nicht, bzw kann ich keine Muster erkenne 😀

Bei WIndows sind die Lieder 3:28 Minuten lang (also 208 Sekunden) in der Konsole steht aber 304 Sekunden. Bei 3:38 steht 335 Sekunden. Was ist da los ? Ich warte extra noch eine Sekunde, damit das ich keine 9 Milliarden als Ergebniss bekomme.

Danke Schonmal
 
Hi,

JMF ist veraltet und wird nicht mehr gepflegt. Daher habe ich mich damit nicht weiter geschäftigt.

Um die Laufzeit eines mp3 Lied zu ermitteln, benötigst Du Dateilänge und die Samplesize in Bits.

Code:
duration = song.length()/audioFormat.getSampleSizeInBits()/1000; // für mp3

songLaenge - entspricht der Dateigröße
sampleSizeInBits - kann über das Audioformat des AudioInputStreams abgefragt werden.

Für die Berechnung einer wav Datei brauchst Du ebenfalls Infos aus dem AudioInputStream und dem AudioFormat.
Code:
duration = in.getFrameLength()/(long)audioFormat.getFrameRate(); // für wav

Ich habe 3 Dateien hochgeladen, mit den Du mp3 und wav Dateien
abspielen kannst.
Die Gesamtlaufzeit und die aktuelle Position kann abgefragt werden.
Probiere es mal aus!

Gruß
 

Anhänge


Zurück
Oben