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.
Twee vraagjes:
1.) Het stukje dat tussen de try and catch staat geeft voor 1 mp3tje een error, namelijk:
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!
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!