Estrarre le copertine degli album dai file MP3 usando TagLib - Esiste un modo migliore per scrivere questo codice?

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

Domanda

Sto usando Visual Basic 9 (VS2008) e TagLib.

Il codice seguente estrae la copertina dell'album da un file MP3 e la visualizza in PictureBox.

C'è un modo migliore per scrivere questo codice?

 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
È stato utile?

Soluzione

Non ho familiarità con TagLib ma non sembra che ci sia un modo molto migliore per scrivere questo. L'unico suggerimento che posso dare è che potresti ridurre la quantità di codice sfruttando l'inferenza del tipo. Le due dichiarazioni di variabili non richiedono un tipo esplicito se " Opzione Infer " è attualmente attivo. Questo in realtà non cambia la qualità del codice, ma ne riduce solo la quantità.

Esempio

 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

Altri suggerimenti

A prima vista mi sembra a posto.

È possibile aggiungere un po 'di gestione degli errori, ad esempio se TagLib.File.Create () genera un errore o restituisce " Nothing " ;. Inoltre, se la proprietà Tag è vuota per qualche motivo, verrà generato un errore se tenterai di accedere a " .Pictures " ;.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top