Français
Source/ Codesnippets

Lecture Fichiers Id3v2 Mp3 journée

 

KompilierenMarqueSéparation
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


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

4.272 Views

Untitledvor 0 min.
Member 862464104.05.2024
Sven Bader27.09.2023
Michael Hettner21.09.2023
Tango06.08.2021
plus...

Themeninformationen

cet Thema hat 1 participant:

unbekannt (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie