Album cover aus MP3

  • Weiß jemand wie man das Album Cover aus dem ID3 Tag lesen kann?

    mit _getID3Tag und _GetExtProperty geht´s ja leider nicht..

    Danke

    Franz

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • [autoit]

    Local $id3 = ObjCreate("CDDBControl.CddbID3Tag")
    MsgBox(0, "", $id3.AlbumCover)

    [/autoit]

    geht das?^^... sry ich kanns net testen...
    Oder kann man nicht irgendwie rausfinden welche ohhman ich weiss nichmal wie das heisst (Methode????) -.- halt die .irendwas

    Was es davon alles gibt?

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

    Einmal editiert, zuletzt von FireFlyer (14. Januar 2009 um 16:04)

  • Das Bild ist im Normalfall irgendwie in die MP3 eingebettet.

    Hm bei dem Code fehlt irgendwie ne Angabe welche Datei er nehmen soll und ob MsgBox Bilder anzeigen kann glaube ich nicht.

  • nein ich sag ja da fehlt die datei aber er hat das alles aus dieser udf genommen:


    Spoiler anzeigen
    [autoit]

    #include <array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $file = "C:\Downloads\Musik\Chris De Burg - Lady in Red.mp3"

    [/autoit] [autoit][/autoit] [autoit]

    _DLLstartup()
    Global $re = _getID3Tag($file)
    If @error Then MsgBox(0, 'Error', 'Error - no array returned', 5)
    _ArrayDisplay($re)
    _setID3Tag($file, 'TrackPosition', 100)
    If @error Then MsgBox(0, 'Error', 'Error - setID3Tag', 5)
    _setID3Tag($file, 'TitleAlbum', 'Mega')
    If @error Then MsgBox(0, 'Error', 'Error - setID3Tag', 5)
    $re = _getID3Tag($file)
    If @error Then MsgBox(0, 'Error', 'Error - no array returned', 5)
    _ArrayDisplay($re)
    _DLLshutdown()

    [/autoit] [autoit][/autoit] [autoit]

    ;===================================================================================================

    [/autoit] [autoit][/autoit] [autoit]

    ============
    ; 'TitleAlbum', 'Movie', 'Title', 'CopyrightYear', 'CopyrightHolder', 'Comments', 'Label', 'BeatsPerMinute',
    ; 'LeadArtist', 'PartOfSet', 'TrackPosition', 'Year', 'Genre', 'FileId', 'ISRC'
    ;===================================================================================================

    [/autoit] [autoit][/autoit] [autoit]

    =============
    Func _setID3Tag($h_file, $detail, $value)
    Local $oId3 = ObjCreate("CDDBControl.CddbID3Tag")
    If Not IsObj($oId3) Then
    SetError(1)
    Return 0
    EndIf
    ; False means open for read-write
    $oId3.LoadFromFile ($h_file, False)

    [/autoit] [autoit][/autoit] [autoit]

    Switch $detail
    Case 'TitleAlbum'
    $oId3.Album = $value
    Case 'LeadArtist'
    $oId3.LeadArtist = $value
    Case 'Title'
    $oId3.Title = $value
    Case 'TrackPosition'
    $oId3.TrackPosition = $value
    Case 'Year'
    $oId3.Year = $value
    Case 'Genre'
    $oId3.Genre = $value
    Case 'Comments'
    $oId3.Comments = $value
    Case 'Label'
    $oId3.Label = $value
    Case 'FileID'
    $oId3.FileId = $value
    Case 'IRSC'
    $oId3.ISRC = $value
    Case 'CopyrightHolder'
    $oId3.CopyrightHolder = $value
    Case 'CopyrightYear'
    $oId3.CopyrightYear = $value
    Case 'PartOfSet'
    $oId3.PartOfSet = $value
    Case 'Movie'
    $oId3.Movie = $value
    Case 'BeatsPerMinute'
    $oId3.BeatsPerMinute = $value
    Case Else
    SetError(2)
    Return 0
    EndSwitch
    $oId3.SaveToFile ($h_file)
    Return 1
    EndFunc ;==>_setID3Tag

    [/autoit] [autoit][/autoit] [autoit]

    Func _getID3Tag($h_file)
    Local $oId3 = ObjCreate("CDDBControl.CddbID3Tag")
    If Not IsObj($oId3) Then
    SetError(1)
    Return 0
    EndIf
    $oId3.LoadFromFile ($h_file, False)
    Local $idTag_A[15][2]
    $idTag_A[0][0] = 'Title'
    $idTag_A[0][1] = $oId3.Title
    $idTag_A[1][0] = 'LeadArtist'
    $idTag_A[1][1] = $oId3.LeadArtist
    $idTag_A[2][0] = 'Album'
    $idTag_A[2][1] = $oId3.Album
    $idTag_A[3][0] = 'TrackPosition'
    $idTag_A[3][1] = $oId3.TrackPosition
    $idTag_A[4][0] = 'Year'
    $idTag_A[4][1] = $oId3.Year
    $idTag_A[5][0] = 'Genre'
    $idTag_A[5][1] = $oId3.Genre
    $idTag_A[6][0] = 'Comments'
    $idTag_A[6][1] = $oId3.Comments
    $idTag_A[7][0] = 'Label'
    $idTag_A[7][1] = $oId3.Label
    $idTag_A[8][0] = 'FileId'
    $idTag_A[8][1] = $oId3.FileId
    $idTag_A[9][0] = 'ISRC'
    $idTag_A[9][1] = $oId3.ISRC
    $idTag_A[10][0] = 'CopyrightHolder'
    $idTag_A[10][1] = $oId3.CopyrightHolder
    $idTag_A[11][0] = 'CopyrightYear'
    $idTag_A[11][1] = $oId3.CopyrightYear
    $idTag_A[12][0] = 'PartOfSet'
    $idTag_A[12][1] = $oId3.PartOfSet
    $idTag_A[13][0] = 'Movie'
    $idTag_A[13][1] = $oId3.Movie
    $idTag_A[14][0] = 'BeatsPerMinute'
    $idTag_A[14][1] = $oId3.BeatsPerMinute
    Return $idTag_A
    EndFunc ;==>_getID3Tag

    [/autoit] [autoit][/autoit] [autoit]

    Func _DLLstartup($DLLpath = '')
    If $DLLpath = Default Or $DLLpath = '' Then $DLLpath = @ScriptDir & '\cddbcontrol.dll'
    RunWait('regsvr32 /s ' & '"' & $DLLpath & '"')
    EndFunc ;==>_DLLstartup

    [/autoit] [autoit][/autoit] [autoit]

    Func _DLLshutdown($DLLpath = '')
    If $DLLpath = Default Or $DLLpath = '' Then $DLLpath = @ScriptDir & '\cddbcontrol.dll'
    RunWait('regsvr32 /u /s ' & '"' & $DLLpath & '"')
    EndFunc ;==>_DLLshutdown

    [/autoit]

    Ich dachte eig. da liegt nur en pfad oder sowas... weil z.b. der windoof media player legt immer ein extra jpg an mit albumcovers... wiso schreibt er es nicht in den tag???

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Chris de Würg :thumbdown:

    Die angehängte Datei ist wahrscheinlich auch nicht besser aber dafür hat sien Bild :pinch: (war auf meinem Player schon drauf)

    Edith: Anhängen ging ni also rapidshare

    Einmal editiert, zuletzt von mehrsolala (14. Januar 2009 um 16:28)

  • soweit ich weiss betten einigen Player (z.B. Itunes) das Cover direkt in die MP3 Datei ein. Also der Mediaplayer scheint diese Cover auch lesen zu können. Ja die Methode mit der extra jpg Datei im gleichen Ordner gibts auch, aber die brauche ich nicht.

    mit _getID3Tag hab´s ich nicht hinbekommen. :(

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---