Extracción de la carátula del álbum de archivos MP3 usando TagLib: ¿hay una mejor manera de escribir este código?
-
20-08-2019 - |
Pregunta
Estoy usando Visual Basic 9 (VS2008) y TagLib.
El siguiente código extrae la carátula del álbum de un archivo MP3 y la muestra en un PictureBox.
¿Hay una mejor manera de escribir este código?
Dim file As TagLib.File = TagLib.File.Create(filepath)
If file.Tag.Pictures.Length >= 1 Then
Dim bin As Byte() = DirectCast(file.Tag.Pictures(0).Data.Data, Byte())
PreviewPictureBox.Image = Image.FromStream(New MemoryStream(bin)).GetThumbnailImage(100, 100, Nothing, System.IntPtr.Zero)
End If
Solución
No estoy íntimamente familiarizado con TagLib, pero no parece que haya una mejor manera de escribir esto. La única sugerencia que puedo dar es que podría reducir la cantidad de código aprovechando la inferencia de tipos. Las dos declaraciones de variables no necesitan un tipo explícito si " Option Infer " está actualmente en Sin embargo, esto en realidad no cambia la calidad del código, solo reduce la cantidad del mismo.
Ejemplo
Option Infer On
...
Dim file = TagLib.File.Create(filepath)
If file.Tag.Pictures.Length >= 1 Then
Dim bin = DirectCast(file.Tag.Pictures(0).Data.Data, Byte())
PreviewPictureBox.Image = Image.FromStream(New MemoryStream(bin)).GetThumbnailImage(100, 100, Nothing, System.IntPtr.Zero)
End If
Otros consejos
A primera vista, me parece bien.
Podría agregar algún tratamiento de errores, por ejemplo, si TagLib.File.Create ()
arroja un error o devuelve " Nothing
" ;. Además, si la propiedad Tag
está vacía por alguna razón, se generará un error si intenta acceder a " .Pictures
" ;.