Cover Bilder von MP3 Dateien laden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
SteveDee
User
Beiträge: 20
Registriert: Mittwoch 30. Dezember 2015, 01:58

Guten Abend,
ich versuche die Cover Bilder von MP3 Dateien auszulesen und anzuzeigen.
Dafür habe ich den folgenden Code benutzt, jedoch wird nur ein Coverbild aus meiner Bibliothek geladen, obwohl im Windows Explorer viel mehr Lieder Coverbilder haben.
Ist der Code falsch oder was könnte der Fehler sein?

Code: Alles auswählen

# ...
    file = File(sFile)#bekommt Dateipfad aus Liste
    try:
        album_file = file.tags['APIC:'].data
        with open(titel + '.jpg', 'wb') as img:
            img.write(album_file)	
        cover = pygame.image.load(titel + '.jpg').convert()
    except KeyError:
        cover = pygame.image.load("noalbum.png").convert()
Zuletzt geändert von Anonymous am Montag 4. Januar 2016, 00:08, insgesamt 1-mal geändert.
BlackJack

@SteveDee: Die meisten Player schauen auch in dem Verzeichnis wo die Audiodatei liegt, ob es dort auch eine passende Grafikdatei gibt. MP3s können des weiteren mehr als einen APIC-Frame besitzen. Dessen Dateityp muss nicht JPEG sein, da gibt's auch noch andere Möglichkeiten. Statt Bilddaten kann auch eine URL in dem Frame kodiert sein unter der das Bild verfügbar ist. Neben dem APIC-Frame gibt es auch noch „General encapsulated object“-Frames (GEOB) in denen auch Bilddaten stecken können.

Edit: Schau Dir doch einfach mal die Tags von Dateien an die bei Dir scheinbar keine Bilder haben. Dann sollte Dir etwas auffallen.
SteveDee
User
Beiträge: 20
Registriert: Mittwoch 30. Dezember 2015, 01:58

Also wie kann ich dann am besten Unterscheidungen vornehmen bzw wie sollte ich das Anzeigen der Coverbilder dann am besten realisieren?
BlackJack

@SteveDee: Ups, hatte gerade eben noch ein ”Edit” nachgeschoben. Schau Dir die Tags doch einfach mal an von den Dateien bei denen Dein bisheriger Code kein Bild ermittelt. Der Schlüssel ist nicht nur 'APIC:'. Kann ja grundsätzlich nicht nur 'APIC:' sein wenn man weiss, dass es mehr als einen Frame vom Typ APIC geben kann. Was die Arten von APIC-Frames angeht und wie die Information kodiert ist um was für einen Dateityp es sich handelt, wirf am besten einen Blick in die IDv3-Spezifikation.
Antworten