Extracción de la carátula del álbum de archivos MP3 usando TagLib: ¿hay una mejor manera de escribir este código?

StackOverflow https://stackoverflow.com/questions/476101

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
¿Fue útil?

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 " ;.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top