2016-07-20 93 views
-2

Ich versuche, den Titel einer MP3 zu bekommen, die in den Eigenschaften ist. Zum Beispiel lautet der Dateiname "iasn_E_052", aber der Titel lautet "Guard Your Heart". Den Dateinamen zu bekommen ist einfach, aber der Songtitel ist ich weiß nicht wie. Ich benutze vb.net Visual Studio 2013.MP3 Titel in VB.net

Antwort

0

Metadaten wie Titel oder Künstler wird als ID3 in der Datei gespeichert. Sie müssen die Datei byteweise lesen und die spezifischen Bytes in eine Zeichenfolge konvertieren.
Zum Beispiel ist das ID3v1-Tag in den letzten 128 Bytes der Datei gespeichert. Die ersten drei Bytes sind "TAG" und die nächsten 30 Bytes sind der Titel.

Option Strict On 
Imports System.IO 

Class MP3Tags 
    Sub GetTitle(filename As String) 
     Dim buffer(30) As Byte 
     Dim reader As New FileStream(filename, FileMode.Open, FileAccess.Read) 

     Dim length = reader.Length 
     If (length > 128) Then 
      reader.Seek(-128, SeekOrigin.End) 
      reader.Read(buffer, 0, 3) 
      Dim tag As String = System.Text.Encoding.ASCII.GetChars(buffer, 0, 3) 
      If (tag = "TAG") Then 
       reader.Read(buffer, 0, 30) 
       Dim title As String = System.Text.Encoding.ASCII.GetChars(buffer, 0, 30) 
       Console.WriteLine("Title = " + title) 
      Else 
       Console.WriteLine("File doesn't contain ID3v1 tags") 
      End If 
     Else 
      Console.WriteLine("File is too short to have tags") 
     End If 
    End Sub 
End Class 

(basierend auf dieser class)