arte extração Album de arquivos de MP3 usando TagLib - Existe uma maneira melhor escrever esse código?
-
20-08-2019 - |
Pergunta
Eu estou usando Visual Basic 9 (VS2008) e TagLib.
O código a seguir extrai a arte do álbum de um arquivo MP3 e exibe em uma PictureBox.
Existe uma maneira melhor para escrever esse 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
Solução
Eu não estou intimamente familiarizado com TagLib mas não parece que há muito de uma maneira melhor para escrever este. A única sugestão que posso dar é que você pode reduzir a quantidade de código, aproveitando a inferência de tipos. As duas declarações de variáveis ??não precisa de um tipo explícito se "Option Infer" está atualmente em. Este na verdade não alterar a qualidade do código, porém, ele só reduz a quantidade de-lo.
Exemplo
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
Outras dicas
À primeira vista, parece ok para mim.
Você pode adicionar um pouco de manipulação de erro, por exemplo, se TagLib.File.Create()
gera um erro ou retorna "Nothing
". Além disso, se a propriedade Tag
está vazia por algum motivo, um erro será lançada se você tentar acesso ".Pictures
".