AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Cover in WMP Format

Ein Thema von EWeiss · begonnen am 31. Mär 2018 · letzter Beitrag vom 15. Apr 2018
Antwort Antwort
Seite 7 von 9   « Erste     567 89      
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
885 Beiträge
 
Delphi 11 Alexandria
 
#61

AW: Cover in WMP Format

  Alt 14. Apr 2018, 18:26
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
MP3ErrorString: Array[TMP3Error] of String = ( ... ) Wundert mich grade ein bisschen, dass ich das damals nicht mit dabei gepackt habe.
The angels have the phone box.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#62

AW: Cover in WMP Format

  Alt 14. Apr 2018, 18:32
Habe es gerade gemacht bekomme aber Probleme.

Delphi-Quellcode:
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'
   );
Wie kann ich die jetzt auswerten ?

Delphi-Quellcode:
var
   error : TMP3Error;
...
lblMessageVal.Caption := cMP3Error[Error];
bekomme dann immer nur MP3ERR_None zurück obwohl ein Fehler aufgetreten ist.

Zitat:
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.
Es reicht mir im Moment mal wenn ich die error message auswerten kann.

Darauf kann ich reagieren und ändere mit MP3Tag auf 2.3

gruss

Geändert von EWeiss (14. Apr 2018 um 18:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#63

AW: Cover in WMP Format

  Alt 14. Apr 2018, 18:46
Zeig mal Code wo Du error einen Wert zuordnest.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#64

AW: Cover in WMP Format

  Alt 14. Apr 2018, 18:48
Zeig mal Code wo Du error einen Wert zuordnest.
Delphi-Quellcode:
    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;
gruss
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#65

AW: Cover in WMP Format

  Alt 14. Apr 2018, 18:53
Error := MP3ERR_None; //<<<
Du solltest eine Fehlerabfrage einbauen die error auch bei einem Fehler aktualisiert.
Entweder hab ich Tomaten auf den Augen, aber ich seh nur in Zeile 1 das error gefüttert wird?!

Also so hier in etwa:
Delphi-Quellcode:
 end else
      begin
        Error := MP3ERR_NoFile;
        lblMessageVal.Caption := cMP3Error[Error];
      end;
Gruß vom KodeZwerg

Geändert von KodeZwerg (14. Apr 2018 um 19:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
885 Beiträge
 
Delphi 11 Alexandria
 
#66

AW: Cover in WMP Format

  Alt 14. Apr 2018, 18:59
Eher so:

Delphi-Quellcode:
error := MP3Tags.ReadFromFile(mp3File);
If (error = MP3ERR_None) Then
begin
 // ...
end else
begin
  lblMessageVal.Caption := cMP3Error[Error];
end
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.
The angels have the phone box.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#67

AW: Cover in WMP Format

  Alt 14. Apr 2018, 19:02
Error := MP3ERR_None; //<<<
Du solltest eine Fehlerabfrage einbauen die error auch bei einem Fehler aktualisiert.
Entweder hab ich Tomaten auf den Augen, aber ich seh nur in Zeile 1 das error gefüttert wird?!

Also so hier in etwa:
Delphi-Quellcode:
 end else
      begin
        Error := MP3ERR_NoFile;
        lblMessageVal.Caption := cMP3Error[Error];
      end;
jo bin mal wieder blöd heute

Delphi-Quellcode:
      Error := MP3Tags.ReadFromFile(mp3File);
      If Error = MP3ERR_None then
Zitat:
Eher so:
Oops hatte gerade die gleiche Idee

Vielleicht kannst du das ja noch bei einem späteren Update mit berücksichtigen.

gruss

Geändert von EWeiss (14. Apr 2018 um 19:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#68

AW: Cover in WMP Format

  Alt 14. Apr 2018, 19:09

Ich hab Delphi grad nicht offen gehabt (wusst nicht das die unit codes übermittelt), nur gesehn das Error nicht gefüttert wird
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#69

AW: Cover in WMP Format

  Alt 14. Apr 2018, 19:14

Ich hab Delphi grad nicht offen gehabt (wusst nicht das die unit codes übermittelt), nur gesehn das Error nicht gefüttert wird
LOL Warum soll es dir anders gehen als mir
Manchmal ist man neben der Rolle.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#70

AW: Cover in WMP Format

  Alt 14. Apr 2018, 19:29
Joar, nach'm zweiten mal Lesen hät's mir auch klar sein müssen, steht ja If (MP3Tags.ReadFromFile(mp3File) = MP3ERR_None) Then also hat's einen Return Code.
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
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 7 von 9   « Erste     567 89      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz