MP3-Tag mit VB.NET auslesen und bearbeiten
lima-city → Forum → Programmiersprachen → Basic
album
anweisung
anzeigen
artist
aufruf
byte
catch
dateiname
daten
deswegen
encoding
fragen
funktion
gen
jahr
modul
player
script
tag
test
-
Hi,
ich programmiere ja einen MP3-tag/player">Player. Jetzt w?re es ganz nett, wenn der MP3-Tags auslesen und eventuell bearbeiten. Ich habe schon im I-net gesucht und nur Scripts f?r VB6 gefunden. Und wenn ich den Umkonvertieren lasse kommt dabei nur mist raus.
Deswegen meine Frage: Kennt einer ein Script f?r VB.NET mit dem ich MP3-Tags auslesen und bearbeiten kann. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also ich hab eine L?sung f?r VB.Net, um MP3-Tags auszulesen. (der folgende Code kann die Tags nur lesen, aber noch nicht bearbeiten, daran arbeite ich noch).
Der Aufruf ist ganz einfach:
'************************************************************
Private Sub Button1_Click(...)...
Dim MP3Tag As New MP3TagData
Dim Dateiname As String = "D:\Test.mp3"
'Tags auslesen:
Try
MP3Tag.ReadFromFile(Dateiname)
Catch ex As Exception
MsgBox(ex.Messege.ToString)
End Try
'Tags anzeigen:
MsgBox( _
"Album: " & MP3Tag.Album & vbNewLine & _
"Artist: " & MP3Tag.Artist & vbNewLine & _
"Titel: " & MP3Tag.SongTitle & vbNewLine & _
"Jahr: " & MP3Tag.Year)
End Sub
'************************************************************
Aber leider funktioniert dies noch nicht. Es fehlt noch die Funktion MP3TagData. Und die gibts hier. Einfach unter alle anderen "Class"-Anweisungen einf?gen oder in einem neuen Modul einf?gen (aber nicht in die "Module"-Anweisung, sondern ganz unten einf?gen):
'************************************************************
Public Class MP3TagData
Private _Artist As String
Private _SongTitle As String
Private _Album As String
Private _Year As String
Public ReadOnly Property Artist() As String
Get
Return _Artist
End Get
End Property
Public ReadOnly Property SongTitle() As String
Get
Return _SongTitle
End Get
End Property
Public ReadOnly Property Album() As String
Get
Return _Album
End Get
End Property
Public ReadOnly Property Year() As String
Get
Return _Year
End Get
End Property
Public Sub ReadFromFile(ByVal filename As String)
' Bereits vorhandene Werte l?schen.
Me._SongTitle = ""
Me._Artist = ""
Me._Album = ""
Me._Year = ""
Dim fs As New FileStream(filename, FileMode.Open)
' MP3-Tag lesen.
fs.Seek(0 - 128, SeekOrigin.End)
Dim Tag(2) As Byte
fs.Read(Tag, 0, 3)
' ?berpr?fen, ob ein Tag vorhanden ist.
If System.Text.Encoding.ASCII.GetString(Tag).Trim() = "TAG" Then
' Titel.
Me._SongTitle = GetTagData(fs, 30)
' K?nstler.
Me._Artist = GetTagData(fs, 30)
' Album.
Me._Album = GetTagData(fs, 30)
' Jahr.
Me._Year = GetTagData(fs, 4)
End If
fs.Close()
End Sub
Private Function GetTagData(ByVal stream As Stream, _
ByVal length As Integer) As String
' Daten lesen.
Dim Bytes(length - 1) As Byte
stream.Read(Bytes, 0, length)
Dim TagData As String = System.Text.Encoding.ASCII.GetString(Bytes)
' Nullen abschneiden.
Dim TrimChars() As Char = {Char.Parse(" "), Char.Parse(vbNullChar)}
TagData = TagData.Trim(TrimChars)
Return TagData
End Function
End Class
'************************************************************
Ist doch ganz leicht zum Verwenden, auch wenn man den Code in der Class "MP3TagData" nicht versteht.
MfG Chris -
wie ich sehe ist dir ein ganz kleiner Rechtschreibfehler unterlaufen. Es muss so hei?en:
'************************************************************
Private Sub Button1_Click(...)...
Dim MP3Tag As New MP3TagData
Dim Dateiname As String = "D:\Test.mp3"
'Tags auslesen:
Try
MP3Tag.ReadFromFile(Dateiname)
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
'Tags anzeigen:
MsgBox( _
"Album: " & MP3Tag.Album & vbNewLine & _
"Artist: " & MP3Tag.Artist & vbNewLine & _
"Titel: " & MP3Tag.SongTitle & vbNewLine & _
"Jahr: " & MP3Tag.Year)
End Sub
'************************************************************
Nochmal danke, du hast mir sehr geholfen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage