vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Probleme beim auslesen von mp3IDv2 Tags 
Autor: spomue
Datum: 16.10.09 13:28

Hier mein Code Teil 2

    Private Function MP3_ReadID3v2Tag(ByVal sFile As String) As ID3v2
        Dim oInfo As ID3v2
        Dim nTagLen As Integer = MP3_ID3v2Exists(sFile)
 
        If nTagLen > 0 Then
            Try
                ' Datei öffnen
                Dim oStream As New System.IO.FileStream(sFile, IO.FileMode.Open)
 
                ' Start-Position
                Dim nPos As Integer = 10
                Dim sFrame As String = ""
                Dim sData As String = ""
                Dim bData() As Byte
 
                ' Liest den Framtyp so lange aus bis es nichts
                ' mehr zum lesen gibt
                Do While nPos < nTagLen
                    ReDim bData(3)
                    oStream.Seek(nPos, IO.SeekOrigin.Begin)
                    oStream.Read(bData, 0, 4)
                    sFrame = System.Text.Encoding.Default.GetString(bData)
                    If sFrame.Contains(Chr(0)) Then GoTo close
 
                    oStream.Read(bData, 0, 4)
                    sData = ""
                    For z As Integer = 2 To 0 Step -1
                        For i As Integer = 0 To 7
                            sData &= CStr(Math.Abs(bData(z) And (2 ^ i)))
                        Next i
                    Next z
 
                    ' Frametyp-Größe berechnen
                    Dim nSize As Long = 0
                    For i As Integer = 8 To 30
                        nSize += ((2 ^ i) * Val(sData.Substring(i - 8, 1)))
                    Next i
                    nSize += bData(3)
 
                    ' ID3v2-Info auslesen
                    ReDim bData(nSize - 1)
                    nPos += 10
                    oStream.Seek(nPos + 1, IO.SeekOrigin.Begin)
                    If nSize > 0 Then
                        oStream.Read(bData, 0, nSize - 1)
                    Else
                        oStream.Read(bData, 0, nSize)
                    End If
 
 
                    sData = TrimNull(System.Text.Encoding.Default.GetString( _
                      bData))
 
                    ' Struktur füllen
                    With oInfo
                        Select Case sFrame
                            Case "TMED"
                                .sMedium = sData
                            Case "TLEN"
                                .sLen = sData
                            Case "TRCK"
                                .sTrack = sData
                            Case "TENC"
                                .sEncodeBy = sData
                            Case "WXXX"
                                .sURL = sData
                            Case "TCOP"
                                .sCopyright = sData
                            Case "TOPE"
                                .sOrgArtist = sData
                            Case "TCOM"
                                .sComposer = sData
                            Case "COMM"
                                .sComment = sData
                            Case "TCON"
                                ' evtl. vorhandene Klammern entfernen
                                sData = Replace(sData, "(", "")
                                sData = Replace(sData, ")", "")
                                .sGenre = sData
                            Case "TYER"
                                .sYear = sData
                            Case "TALB"
                                .sAlbum = sData
                            Case "TPE1"
                                .sArtist = sData
                            Case "TIT2"
                                .sTitle = sData
                        End Select
                    End With
                    nPos += nSize
                Loop
 
 
 
                ' Datei wieder schließen
close:          oStream.Close()
            Catch ex As Exception
            End Try
        End If
        Return (oInfo)
    End Function
 
 
    ' Entfernt alle Null-Zeichen im String
    Private Function TrimNull(ByVal sData As String) As String
        Return sData.Replace(Chr(0), "").TrimEnd
    End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Probleme beim auslesen von mp3IDv2 Tags1.375spomue16.10.09 13:26
Re: Probleme beim auslesen von mp3IDv2 Tags896spomue16.10.09 13:28
Re: Probleme beim auslesen von mp3IDv2 Tags968spomue16.10.09 13:29

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel