Español
Fuente/ Codesnippets

Auslesen Archivos Id3v2 Mp3 Tag

 

KompilierenMarcaSeparación
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
MP3-Dateien auslesen (ID3V2-Tag)
##########################################################
ID3V2-Tag Versionen 3 und 4 auslesen
ab Profan 7.6, da die Prozedur als Funktion benutzt wird !
##########################################################
Andreas Miethe * Januar 2003
##########################################################
Declare #MP3_ReadBytes#,File$

Proc ReadTag34

    Parameters #MP3_Datei$
    Declare #MP3_Result$
    Declare #MP3_Ident$,#MP3_MajorVersion%,#MP3_SubVersion%,#MP3_TagLength&
    Declare #MP3_ExtHeader%,#MP3_Framestart%,#MP3_Framename$,#MP3_FrameLength&,#MP3_FrameFlags%
    Declare #MP3_Temp$,#MP3_Counter&
    Declare #MP3_FrameList$,#MP3_NameList$,#MP3_Find%
    Filemode 0
    Assign #1,#MP3_Datei$
    OpenRW #1
    Dim #MP3_ReadBytes#,@FileSize(#MP3_Datei$)
    @BlockRead(#1,#MP3_ReadBytes#,0,@FileSize(#MP3_Datei$))
    CloseRW #1
    Identifyer auslesen
    #MP3_Ident$ = ID3
    #MP3_Temp$ = chr$(Byte(#MP3_ReadBytes#,0))+chr$(Byte(#MP3_ReadBytes#,1))+chr$(Byte(#MP3_ReadBytes#,2))

    If #MP3_Ident$ = #MP3_Temp$

        #MP3_Result$ = ID3V2-Tag
        Version auslesen
        #MP3_MajorVersion% = Byte(#MP3_ReadBytes#,3)
        #MP3_SubVersion% = Byte(#MP3_ReadBytes#,4)

        If (#MP3_MajorVersion% = 3) or (#MP3_MajorVersion% = 4)

            Behandlung von TAG-Versionen 3 und 4
            #MP3_Result$ = #MP3_Result$ + Version : +Str$(#MP3_MajorVersion%)+.+str$(#MP3_SubVersion%)+chr$(13)
            Extendet Haeder suchen

            If Byte(#MP3_ReadBytes#,9) = 1

                #MP3_ExtHeader% = 6 6 Bytes gross

            else

                #MP3_ExtHeader% = 0

            endif

            Frames bearbeiten

            If (#MP3_MajorVersion% = 3) or (#MP3_MajorVersion% = 4)

                #MP3_FrameList$ = PCNTTRCKTENCWXXXTCOPTOPETCOMTCONCOMMTYERTALBTPE1TIT2TLANTLENTMEDTPUBTSSE
                #MP3_NameList$ = Play Counter:,Track:,Encoded von:,Link:,Copyright (c):,Ursprünglicher Künstler:,
                #MP3_NameList$ = #MP3_NameList$ + Composer:,Genre:,Kommentar:,Jahr:,Album:,Künstler:,Titel:,
                #MP3_NameList$ = #MP3_NameList$ + Sprache:,Länge:,Medientyp:,Publisher:,Decoding-Software:,unbekannt:
                #MP3_Framestart% = 10 + #MP3_ExtHeader%
                #MP3_FrameFlags% = 2
                #MP3_Framename$ = X

                Whilenot #MP3_Framename$ =

                    FrameName
                    #MP3_Framename$ = chr$(Byte(#MP3_ReadBytes#,#MP3_Framestart%))+chr$(Byte(#MP3_ReadBytes#,#MP3_Framestart%+1))+
                    chr$(Byte(#MP3_ReadBytes#,#MP3_Framestart%+2))+chr$(Byte(#MP3_ReadBytes#,#MP3_Framestart%+3))
                    Framelänge
                     $FF darf nicht vorkommen, daher sind die oberen 4 Bits eines Bytes LO
                    Die Berechnug der Länge ist darum etwas umständlich !
                    #MP3_FrameLength& = 256 * 8 * 8 * Byte(#MP3_ReadBytes#,#MP3_Framestart%+4)
                    #MP3_FrameLength& = #MP3_FrameLength& + 256 * 8 * Byte(#MP3_ReadBytes#,#MP3_Framestart%+5)
                    #MP3_FrameLength& = #MP3_FrameLength& + 256 * Byte(#MP3_ReadBytes#,#MP3_Framestart%+6)
                    #MP3_FrameLength& = #MP3_FrameLength& + Byte(#MP3_ReadBytes#,#MP3_Framestart%+7)
                    TAG

                    If #MP3_FrameLength& = 0

                        wenn die Länge NULL ist, dann fertig mit Auslesen !
                        break

                    else

                        #MP3_Temp$ =
                        #MP3_Counter& = 1

                        Whilenot #MP3_Counter& = #MP3_FrameLength&

                            String zusammensetzen
                            #MP3_Temp$ = #MP3_Temp$ + CHR$(Byte(#MP3_ReadBytes#,#MP3_Framestart%+8+#MP3_FrameFlags%+#MP3_Counter&))
                            #MP3_Counter& = #MP3_Counter& + 1

                        Wend

                        If Mid$(#MP3_Temp$,4,1) = chr$(0)

                            bei Winamp steht komische Zeug in den ersten 4 Bytes
                            wahrscheinlich Sprachbezeichner, weg damit !
                            #MP3_Temp$ = Mid$(#MP3_Temp$,5,Len(#MP3_Temp$))

                        endif

                        #MP3_Find% = Instr(#MP3_Framename$,#MP3_FrameList$) / 4
                        in der Liste nach Eintrag suchen
                        Case #MP3_Find% = 0 : #MP3_Find% = 19
                        unbekannte Frames bearbeiten

                        If Trim$(#MP3_Temp$) <>

                            nur wenn nicht leer !
                            #MP3_Result$ = #MP3_Result$ +Substr$(#MP3_NameList$,#MP3_Find%+1,,),Trim$(#MP3_Temp$)+chr$(13)

                        endif

                        #MP3_Framestart% = #MP3_Framestart% + 11 + (#MP3_FrameLength& - 1)

                    wend

                endif

            endif

        else

            #MP3_Result$ = #MP3_Result$ + Version kann nicht gelesen werden.+chr$(13)+chr$(13)
            #MP3_Result$ = #MP3_Result$ + Es werden nur ID3V2TAG-Versionen 3 und 4 unterstützt !+chr$(13)

        endif

    else

        #MP3_Result$ = Kein ID3V2-Tag

    endif

    Dispose #MP3_ReadBytes#
    Return #MP3_Result$

endproc

#############################
DEMO :
#############################
File$ = Track01.mp3Pfad anpassen
#############################
gibt es die Datei ???
SetErrorlevel 1
Assign #1,File$
Reset #1
Close #1

If %IOResult

    @Messagebox( add$(File$, gibt es nicht
    Ende),Fehler...,0)
    End

Endif

SetErrorlevel 0
#############################
Messagebox(ReadTag34(File$),ID3V2 von +File$,0)
end
#############################
 
16.07.2007  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

4.269 Views

Untitledvor 0 min.
Member 862464104.05.2024
Sven Bader27.09.2023
Michael Hettner21.09.2023
Tango06.08.2021
Más...

Themeninformationen

Dieses Thema ha 1 subscriber:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie