haloo
ich arbeite im moment an einem mp3Player, der natürlich mp3 files abspielt. um diese dateien zu meinem archiv hinzuzufügen, werden zuerst die informationen aus der mp3 datei gelesen und dann werden sie in die datenbank eingetragen.
eigentlich funktioniert das ganze auch, doch bei wenigen dateien hat er einen fehler(unten zum downloaden).
das ist der code, den ich verwende:
Delphi-Quellcode:
procedure TAdd.Button5Click(Sender: TObject);
var
a, b: real;
mp3file: string;
begin
mp3file := add.ListBox1.Items.Strings[add.ListBox1.itemindex];
FillID3TagInformation(mp3file, add.edit1, add.edit2, add.edit3, add.edit4, add.edit5, add.edit6); // file-informationen auslesen, beim fehler wird diese stelle markiert!
player.table1.Insert;
add.dbedit1.Text := add.edit1.Text; // in die datenbank eintragen
add.dbedit2.Text := add.edit2.Text;
add.dbedit4.Text := add.edit4.Text;
add.dbedit5.Text := add.edit5.Text;
add.dbedit6.Text := add.edit6.Text;
add.dbedit9.Text := add.edit13.text;
player.mediaplayer1.Close;
player.mediaplayer1.FileName := mp3file;
player.mediaplayer1.Open;
a := player.mediaplayer1.Length*(929/930092);
b := Rounder(a, 0);
player.label1.Caption := floattostr(b);
add.DBEdit8.Text := timetostr(SecondsToTime(strtoint(label1.Caption)));
add.dbedit3.Text := add.StaticText1.Caption;
add.dbedit7.Text := mp3file;
player.table1.Post; // datenbank schliessen
end;
FillID3TagInformation:
Delphi-Quellcode:
procedure FillID3TagInformation(mp3File:string; Title,Artist,Album,Year,Genre,Comment:TEdit);
begin
fmp3:=TFileStream.Create(mp3File, fmOpenRead);
try
fmp3.position:=fmp3.size-128;
fmp3.Read(ID3,SizeOf(ID3));
finally
fmp3.free;
end;
if ID3.Tag <> 'TAG' then begin
Title.Text:='Unbekannt';
Artist.Text:='Unbekannt';
Album.Text:='Unbekannt';
Year.Text:='Unbekannt';
Genre.Text:='Unbekannt';
Comment.Text:='Unbekannt';
end else begin
Title.Text:=ID3.Title;
Artist.Text:=ID3.Artist;
Album.Text:=ID3.Album;
if ID3.Genre in [0..MaxID3Genre] then
Genre.Text:=ID3Genre[ID3.Genre]
else
Genre.Text:=IntToStr(ID3.Genre);
Comment.Text:=ID3.Comment
end;
end;
kann mir da jemand helfen??