Extraire une pochette d'album à partir de fichiers MP3 à l'aide de TagLib - Existe-t-il une meilleure façon d'écrire ce code?

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

Question

J'utilise Visual Basic 9 (VS2008) et TagLib.

Le code suivant extrait la pochette de l'album d'un fichier MP3 et l'affiche dans un PictureBox.

Existe-t-il un meilleur moyen d'écrire ce code?

 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
Était-ce utile?

La solution

Je ne connais pas très bien TagLib, mais il ne semble pas y avoir de meilleur moyen d’écrire cela. La seule suggestion que je puisse donner est que vous pourriez réduire la quantité de code en tirant parti de l’inférence de type. Les deux déclarations de variable n'ont pas besoin de type explicite si "Option Infer". est actuellement sur. Cela ne change pas réellement la qualité du code, cela en réduit simplement la quantité.

Exemple

 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

Autres conseils

À première vue, cela me convient.

Vous pouvez ajouter un traitement d'erreur, par exemple si TagLib.File.Create () lève une erreur ou renvoie le code " Nothing ". De même, si la propriété Tag est vide pour une raison quelconque, une erreur est générée si vous essayez d'accéder à " .Pictures ".

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top