K
KlemensyXYZ
Gast
Moin,
ich habe in einem Programm MP3 ID3v1 Tags ausgelesen.
und zwar so:
nun habe ich das Problem dass der TAG meiner MP3 Datei in ID3v2 ist.
Der Titel der MP3 Datei lautet:
.
Das is leider zu lang für ID3v1 sodass nur
ausgegeben wird.
Mit einem Programm dass ID3v2 TAGs ausliest habe ich herausbekommen dass der Titel in ID3v2 vollständig ist.
Wie kann ich das nun in so einem Programm wie oben einbauen?
Ich hab nirgendwo herausgefunden wie die Längen der Bytes dort sind.
Außerdem werden für Leerzeichen Kästen ausgegeben.
Was muss ich da anders machen?
Danke
ich habe in einem Programm MP3 ID3v1 Tags ausgelesen.
und zwar so:
Java:
package id3tag_lesen;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Scanner;
public class MP3Auslesen
{
public static void main (String [] args)
{
Scanner in = new Scanner(System.in);
FileInputStream fis = null;
long groesseMB3 = 0;
byte bTAG [] = new byte [3];
byte bTitel [] = new byte [30];
byte bInterpret [] = new byte [30];
byte bCDTitel [] = new byte [30];
byte bJahr [] = new byte [4];
byte bKommentar [] = new byte [30];
byte bGenre = 0;
String filename = null;
try
{
System.out.println("MP3-Datei: ");
filename = in.nextLine();
fis = new FileInputStream(filename);
groesseMB3 = fis.available();
//Datensatzzeiger positionieren
fis.skip(groesseMB3-128);
fis.read(bTAG); //TAG lesen
String strTAG = new String(bTAG);
fis.read(bTitel); //Titel lesen
String strTitel = new String(bTitel);
fis.read(bInterpret);//Interpret lesen
String strInterpret = new String(bInterpret);
fis.read(bCDTitel);//CDTietel lesen
String strCDTitel = new String(bCDTitel);
fis.read(bJahr);//Jahr lesen
String strJahr = new String(bJahr);
fis.read(bKommentar);//Kommentar lesen
String strKommentar = new String(bKommentar);
bGenre = (byte)fis.read();//Genre lesen
System.out.println("Dateigroesse: " + groesseMB3);
System.out.println("Tag: " + strTAG);
System.out.println("Titel: " + strTitel);
System.out.println("Interpret: " + strInterpret);
System.out.println("CD-Titel: " + strCDTitel);
System.out.println("Jahr: " + strJahr);
System.out.println("Kommentar: " + strKommentar);
System.out.println("Genre: " + bGenre);
fis.close();
}
catch (IOException err)
{
System.out.println("Fehler: " + err);
}
}
}
Der Titel der MP3 Datei lautet:
Code:
Cantina Band (Episode 4, A New Hope)
Das is leider zu lang für ID3v1 sodass nur
Code:
Cantina Band (Episode 4, A New
Mit einem Programm dass ID3v2 TAGs ausliest habe ich herausbekommen dass der Titel in ID3v2 vollständig ist.
Wie kann ich das nun in so einem Programm wie oben einbauen?
Ich hab nirgendwo herausgefunden wie die Längen der Bytes dort sind.
Außerdem werden für Leerzeichen Kästen ausgegeben.
Was muss ich da anders machen?
Danke