ID3 Tags

Tags:    delphi

jeg har læst den guide og jeg vil gerne tilføje ID3 tags til min mp3 player. men kan ikke finde ud af det.

jeg bruger ikke edit box, men jeg vil gerne have sangens title i min listbox.

http://delphi.about.com/library/code/ncaa112800a.htm



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Jeg har lavet et program der selv laver ID3-taggen, ud fra filnavnet. Det kan du prøve at lege lidt med.

http://www.goffy.org/files/ID3v2.zip

Til folk som bare vil bruge det kan jeg da lige fortælle hvordan det virker.

- Man vælger mappen min sine mp3-filer, hvor der skal skrive ID3-tag.
- Hvis det er et album og du ønsker tracknummer med, vinger du Tracknumber af og skriver navnet på albummet.
- Hvis bare det er en mappe med tilfældige mp3'er, skal du ikke ændre noget bare tryk "Change ID3v2"
- Det er vigtigt at mp3-filerne er navngivet rigtigt, eller får man det forkert ID3v2-tag.

Med tracknumber : "00 - Artist - Title.mp3"
Uden tracknumber : "Artist - Title.mp3"

Program læser efter separatoren "-" så du får også forkert ID3v2-tag hvis Artist indeholder "-".


Med venlig hilsen
Dennis Lauritzen

[Redigeret d. 26/04-04 12:31:31 af Dennis Lauritzen]



Download sourcen til programmet. Der kan du vel "lege" lidt med det





-------------------------------------------------------
Jonas (Decko)
http://www.growyourownshit.com/users/Decko
-------------------------------------------------------



det har jeg jo gjordt :) men kan ikke finde ud af det



har fundet denne kode. jeg har prøvet et få den til at ændre id3 tagget når jeg klikker på itemindex, men uden held.

og når jeg skriver
text.Caption := Titel + '-' + Artist;
så viser den kun titlen?!?

type
TID3Tag = record
ID: string[3];
Titel: string[30];
Artist: string[30];
Album: string[30];
Year: string[4];
Comment: string[30];
end;


function readID3Tag(FileName: string): TID3Tag;
var
FS: TFileStream;
Buffer: array [1..128] of Char;
begin
FS := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
try
FS.Seek(-128, soFromEnd);
FS.Read(Buffer, 128);
with Result do
begin
ID := Copy(Buffer, 1, 3);
Titel := Copy(Buffer, 4, 30);
Artist := Copy(Buffer, 34, 30);
Album := Copy(Buffer, 64, 30);
Year := Copy(Buffer, 94, 4);
Comment := Copy(Buffer, 98, 30);
Genre := Ord(Buffer[128]);
end;
finally
FS.Free;
end;
end;


procedure TfrmMain.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
with readID3Tag(OpenDialog1.FileName) do
begin
LlbID.Caption := 'ID: ' + ID;
LlbTitel.Caption := 'Titel: ' + Titel;
LlbArtist.Caption := 'Artist: ' + Artist;
LlbAlbum.Caption := 'Album: ' + Album;
LlbYear.Caption := 'Year: ' + Year;
LlbComment.Caption := 'Comment: ' + Comment;
end;
end;
end;

[Redigeret d. 26/04-04 18:39:49 af hasan]



t