Zeitlänge einer Audiodatei lesen

Hallo zusammen,

ich beschäftige mich seit einiger Zeit mit dem JMF und möchte gerne in meiner Software die Länge (zeitlich) einer bspw. MP3-Datei auslesen. Ich brauche dies, um eine Progressbar zum Leben zu erwecken.

Weder über diverse Libary´s die ich gefunden habe geht es, noch sonst irgendwas… Das einzige was ich herausgefunden habe ist, dass ich nach der Initialisierung eines Player mit:

MediaLocator ml = new MediaLocator(new File(file.toString()).toURL());
Player p = Manager.createPlayer(ml);
p.addControllerListener(this);
p.realize();

nur etwas in die Richtung wie:

p.getDuration().getSeconds(); //(in double)

sagen kann. Teile ich das Ergebniss dann jedoch durch 60 für die Minuten kommt nur Mist raus, weil er schon eine falsche Anzahl an Sekunden wirft. Es gibt noch ein p.getMediaTime();, was aber auch etwas total anderes als die Mediumzeit zurückgibt…

Ich habe also keine Ahnung wie ich an die Zeit einer Audiodatei rankomme!

Kann mir irgendjemand weiterhelfen???

Gruß Sascha.

Dateiformat direkt bearbeiten
Hallo Sascha,

da wirst du wohl nicht drumrum kommen die entsprechenden Werte durch direkten lesenden Zugriff in die Datei manuell auszulesen und auszuwerten.

Ich nehme an in den Souce-Files von OpenSource MP3-Playern wirst du fündig werden, in welchen Datenfeldern (an welcher Offset-Adresse) deine gesuchte Information steht.

Gruß

Stefan

Hi Stefan,

Vielen Dank für deine Antwort!
Also das klingt schonmal nicht schlecht, allerdings find ich keinen Open Source MP3 Player… Kennst du einen?

Gruß Sascha.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]