Hallöchen!
Hab mal wieder ein recht spezifisches Problem.
Ich bin gerade dabei mithilfe von JLayer und der MP3Spi Audiodateien abzuspielen.
Da es sich um Musik handelt dachte ich mir es wäre besser die Dateien zu Streamen anstatt alles über einen Clip in den RAM zu laden und einen OutOfMemoryError zu riskieren.
Der Player für die MP3 Datei soll natürlich auch fähig sein die Länge des Contents anzuzeigen.
Problem:
Ich würde für WAV Dateien die Länge wie folgt berechnen
Das funktioniert jedoch nicht, da audioInputStream.getFrameLength() bei MP3s -1 liefert.
Ich habe bereits versucht die Header mithilfe der Klassen die mit den Bibliotheken kommen auszulesen.
Ergebnis:
Jetzt weiss ich jedoch nicht weiter. :/
Hab mal wieder ein recht spezifisches Problem.
Ich bin gerade dabei mithilfe von JLayer und der MP3Spi Audiodateien abzuspielen.
Da es sich um Musik handelt dachte ich mir es wäre besser die Dateien zu Streamen anstatt alles über einen Clip in den RAM zu laden und einen OutOfMemoryError zu riskieren.
Der Player für die MP3 Datei soll natürlich auch fähig sein die Länge des Contents anzuzeigen.
Problem:
Ich würde für WAV Dateien die Länge wie folgt berechnen
Java:
length = (long)(1000000 * (audioInputStream.getFrameLength() / audioInputStream.getFormat().getFrameRate()));
Ich habe bereits versucht die Header mithilfe der Klassen die mit den Bibliotheken kommen auszulesen.
Java:
AudioFileFormat audioFileFormat = AudioSystem.getAudioFileFormat(this.resource);
if(audioFileFormat instanceof TAudioFileFormat) {
Map<?, ?> headers = ((TAudioFileFormat)audioFileFormat).properties();
headers.forEach((key, value) -> System.out.println(key + ": " + value));
}
Ergebnis:
Code:
mp3.copyright: false
date: 2016
mp3.framesize.bytes: 1040
mp3.vbr: false
mp3.frequency.hz: 44100
mp3.framerate.fps: 38.28125
mp3.id3tag.track: 1
mp3.id3tag.v2: java.io.ByteArrayInputStream@b81eda8
mp3.channels: 2
mp3.vbr.scale: 0
mp3.version.encoding: MPEG1L3
mp3.bitrate.nominal.bps: 320000
mp3.version.layer: 3
mp3.id3tag.v2.version: 3
mp3.padding: false
mp3.header.pos: 1130
comment: ?ÿ?ww.dvdvideosoft.com?
mp3.version.mpeg: 1
mp3.mode: 1
mp3.crc: false
mp3.original: true
Jetzt weiss ich jedoch nicht weiter. :/