| |

VB.NET - Ein- und UmsteigerRe: 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 |  |
 | 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 |
  |
|
TOP! Unser Nr. 1 
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
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
|
|