Informatie uit mp3'tjes halen

Status
Niet open voor verdere reacties.

beanbag

Gebruiker
Lid geworden
25 apr 2009
Berichten
54
Ik heb hetvolgende scriptje gevonden voor ID3 tags uit mp3's te halen. De essentiële functies zijn wel nog weggecomment aangezien ik met errors zat.

Code:
Public Function GetID3Info(ByVal sFile As String) As String
        Dim oFileStream As New IO.FileStream(sFile, IO.FileMode.Open, IO.FileAccess.Read)
        Dim oBinReader As New IO.BinaryReader(oFileStream)
        ' Als ze aanwezig is staat de MP3-informatie 127 bytes voor het
        ' einde van het bestand
        oBinReader.BaseStream.Seek(-128, IO.SeekOrigin.End)
        ' Enkel en alleen als de eerste 3 bytes op die positie het woord
        ' TAG vormen bevat het bestand geldige MP3-informatie die wekunnen()
        ' eruit halen
        Try
            If oBinReader.ReadChars(3) = "TAG" Then
                oBinReader.Close()
                oFileStream.Close()
                Return "ID3=true"
            End If
        Catch ex As Exception
            Return "ID3=FOUTJE"
        End Try
        'msTitel = binReader.ReadChars(30) ' We lezen 30 karaktersvoor de titel
        'msArtiest = binReader.ReadChars(30) ' We lezen 30 karaktersvoor de artiest
        'msAlbum = binReader.ReadChars(30) ' We lezen 30 karaktersvoor het album
        'msJaar = binReader.ReadChars(4) ' We lezen 4 karakters voor
        'het(jaar)
        'msCommentaar = binReader.ReadChars(30) ' We lezen 30
        'karakters voor het commentaar
        ' Geen geldig MP3-bestand: velden wissen
        'msTitel = ""
        'msArtiest = ""
        'msAlbum = ""
        'msJaar = ""
        'msCommentaar = ""
        'End If
        ' De BinaryReader en FileStream sluiten
        oBinReader.Close()
        oFileStream.Close()
        Return "ID3=FALSE"
           End Function

Twee vraagjes:

1.) Het stukje dat tussen de try and catch staat geeft voor 1 mp3tje een error, namelijk:
PHP:
The output char buffer is too small to contain the decoded characters, encoding 'Unicode (UTF-8)' fallback 'System.Text.DecoderReplacementFallback'. Parameter name: chars

Corrupte mp3 of Fout in het script? Hoe verhelpen op een "betere/propere" manier dan met try catch ?



2.) Hoe kan ik informatie uit files halen die niet in de ID3tags vervat zit? Ik ken de computer.filesystem.getfileinfo("filepath") methode. Maar die bevat redelijk weinig informatie. Ik zoek informatie zoals lengte (in tijdseenheden) en bitrate, enz...


Bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan