![]() |
AW: Cover in WMP Format
ID3_v1 und ID3_v2 sind zwei völlig unterschiedliche Dinge, daher sind das auch zwei Klassen bei Mp3FileUtils. Innerhalb dieser beiden Tag-Versionen wird dann unterschieden zwischen v1.0 und 1.1 bzw. v2.2 (fast nicht mehr zu finden), v2.3 und v2.4.
In der Regel macht man das bei MP3-Dateien so, dass man zuerst nach einem ID3v2-Tag sucht. Falls der nicht da ist, nimmt man den ID3v1-Tag. Dieser ist aber sehr restriktiv und kann außer Interpret, Titel, Album, Kommentar, Jahr, Genre und Track-Nr. (letzteres nur v1.1) keine weiteren Daten enthalten. Wenn man weitere Daten schreiben will, sollte man in dem Fall die Daten aus dem ID3v1-Tag übernehmen in einen neu zu erstellenden ID3v2-Tag. Für die Ausgabe des Fehlers müsste man noch ein sinnvolles String-Array definieren
Delphi-Quellcode:
Wundert mich grade ein bisschen, dass ich das damals nicht mit dabei gepackt habe.
MP3ErrorString: Array[TMP3Error] of String = ( ... )
|
AW: Cover in WMP Format
Habe es gerade gemacht bekomme aber Probleme.
Delphi-Quellcode:
Wie kann ich die jetzt auswerten ?
const
cMP3Error : Array[TMP3Error] of String = ( 'MP3ERR_None', 'MP3ERR_NoFile', 'MP3ERR_FOpenCrt', 'MP3ERR_FOpenR', 'MP3ERR_FOpenRW', 'MP3ERR_FOpenW', 'MP3ERR_SRead', 'MP3ERR_SWrite', 'ID3ERR_Cache', 'ID3ERR_NoTag', 'ID3ERR_Invalid_Header', 'ID3ERR_Compression', 'ID3ERR_Unclassified', 'MPEGERR_NoFrame' );
Delphi-Quellcode:
bekomme dann immer nur MP3ERR_None zurück obwohl ein Fehler aufgetreten ist.
var
error : TMP3Error; ... lblMessageVal.Caption := cMP3Error[Error]; Zitat:
Darauf kann ich reagieren und ändere mit MP3Tag auf 2.3 gruss |
AW: Cover in WMP Format
Zeig mal Code wo Du
Delphi-Quellcode:
einen Wert zuordnest.
error
|
AW: Cover in WMP Format
Zitat:
Delphi-Quellcode:
gruss
Error := MP3ERR_None; //<<<
Picdata.LoadFromFile(Picfile); // basic converting v23Tag.Artist := MP3Tags.Artist; v23Tag.Album := MP3Tags.Album; v23Tag.Title := MP3Tags.Title; v23Tag.Year := MP3Tags.Year; try If (MP3Tags.ReadFromFile(mp3File) = MP3ERR_None) Then begin v23Tag.Track := MP3Tags.Track; v23Tag.Genre := MP3Tags.Genre; v23Tag.Comment := MP3Tags.Comment; if MP3Tags.Rating = 0 then v23Tag.Rating := 128 // 3 Sterne else v23Tag.Rating := MP3Tags.Rating; for i := 1 to 16 do begin b := Random(255); GUID.Write(b, 1); end; v23Tag.SetPrivateFrame('WM/WMCollectionID', GUID); v23Tag.SetPrivateFrame('WM/WMCollectionGroupID', GUID); v23Tag.SetPicture('image/jpeg', 0, '*', PicData); v23Tag.WriteToFile(mp3file); end else begin lblMessageVal.Caption := cMP3Error[Error]; end; |
AW: Cover in WMP Format
Zitat:
Delphi-Quellcode:
auch bei einem Fehler aktualisiert.
error
Entweder hab ich Tomaten auf den Augen, aber ich seh nur in Zeile 1 das
Delphi-Quellcode:
gefüttert wird?!
error
Also so hier in etwa:
Delphi-Quellcode:
end else
begin Error := MP3ERR_NoFile; lblMessageVal.Caption := cMP3Error[Error]; end; |
AW: Cover in WMP Format
Eher so:
Delphi-Quellcode:
Wichtig wäre aber ggf. noch, dass beim Schreiben auch was schief gehen kann. Wenn man den User über alles informieren will, werden solche Prozeduren ein klein wenig verschachtelter.
error := MP3Tags.ReadFromFile(mp3File);
If (error = MP3ERR_None) Then begin // ... end else begin lblMessageVal.Caption := cMP3Error[Error]; end |
AW: Cover in WMP Format
Zitat:
Delphi-Quellcode:
Error := MP3Tags.ReadFromFile(mp3File);
If Error = MP3ERR_None then Zitat:
Vielleicht kannst du das ja noch bei einem späteren Update mit berücksichtigen. :) gruss |
AW: Cover in WMP Format
Zitat:
Ich hab Delphi grad nicht offen gehabt (wusst nicht das die unit codes übermittelt), nur gesehn das Error nicht gefüttert wird ;-) |
AW: Cover in WMP Format
Zitat:
Manchmal ist man neben der Rolle. gruss |
AW: Cover in WMP Format
Joar, nach'm zweiten mal Lesen hät's mir auch klar sein müssen, steht ja
Delphi-Quellcode:
also hat's einen Return Code.
If (MP3Tags.ReadFromFile(mp3File) = MP3ERR_None) Then
Oje, ich bin heut auch fertig, mir schwirrt der Kopf, ich erstelle so etwas wie PEID was sich auf dessen UserDB.txt beruht aber auch PE+ Dateien unterstützt. Die vielen ?? Auswertungen bereiten mir momentan eine große Sorge aber davon ein ander mal im "User Projekte"-Forum |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz