Mit TagLib den ID3v2Tag-Header

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Eddy.

    Mit TagLib den ID3v2Tag-Header

    kann mir jmd sagen, wie ich mit TagLib den ID3v2Tag-Header auslesen kann ?
    ich kann die Id3v2Tags lesen und in der ide wird der Header angezeigt.
    aber ich weiß nicht wie ich ihn auslesen kann.
    im netz finde ich keine mir helfenden beispiele.

    ich bin am verzweifeln :(

    1000 dank im voraus !
    Eine Frage: Was genau verstehst du unter "Header"?
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    also ich möchte gerne die flags auslesen & schreiben (private, copyrighted etc.)
    dann fehlt mir noch die Majorversion & revisionnumber oder die tagsize

    diese sachen fehlen mir noch

    ich bin noch neu in vb net.
    ich habe ne menge rausgefunden....diese 2 sachen fehlen mir noch, dann habe ich es komplett.

    ich bin ein bißchen unbeholfen....deshalb hören die meisten direkt auf anstatt es ein bißchen zu erklären, was mir aber wesentlich weiterhelfen würde.

    danke für deine antwort.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „woeh“ ()

    woeh schrieb:

    also ich möchte gerne die flags auslesen & schreiben (private, copyrighted etc.)


    Das steht aber nicht im Header. Was du nennst waeren Frames, PRIV und TCOP. Siehe hier:
    id3.org/id3v2.3.0
    bei 4. Declared ID3v2 frames


    Wie du mit dieser Lib den Header auswerten kannst kann ich dir nicht sagen, hier ein kleines Sample wie das ohne diese Bibliothek funktioniert. Ein evtl. ExtenedHeader wird hier nicht behandelt.

    VB.NET-Quellcode

    1. Public Sub HeaderAnalyse(ByVal filename As String)
    2. Using fs As New FileStream(filename, FileMode.Open, FileAccess.Read)
    3. Using br As New BinaryReader(fs)
    4. Dim b() As Byte = br.ReadBytes(10)
    5. If b(0) = &H49 AndAlso b(1) = &H44 AndAlso b(2) = &H33 Then
    6. Debug.WriteLine("ID3-TAG FOUND IN: " & filename)
    7. Dim version As Integer = b(3)
    8. Debug.WriteLine("ID3-VERSION: " & version)
    9. Dim tagsize As Integer = (b(9) And &HFF) Or ((b(8) And &HFF) << 7) Or ((b(7) And &HFF) << 14) Or ((b(6) And &HFF) << 21) + 10
    10. Debug.WriteLine("TAG_SIZE: " & tagsize)
    11. Dim isSync As Boolean = If((b(5) And &H80) <> 0, True, False)
    12. Debug.WriteLine("IS_SYNC: " & isSync)
    13. Dim haveExHeader As Boolean = If((b(5) And &H40) <> 0, True, False)
    14. Debug.WriteLine("HAVE_EX_HEADER: " & haveExHeader)
    15. Dim headersize As Integer
    16. b = br.ReadBytes(4)
    17. If haveExHeader Then
    18. headersize = b(0) << 21 Or b(1) << 14 Or b(2) << 7 Or b(3)
    19. fs.Position += headersize - 4
    20. End If
    21. Else
    22. Debug.WriteLine("NO ID3-TAG FOUND IN: " & filename)
    23. End If
    24. End Using
    25. End Using
    26. End Sub
    And i think to myself... what a wonderfuL World!