arte extração Album de arquivos de MP3 usando TagLib - Existe uma maneira melhor escrever esse código?

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

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
Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top