Estrarre le copertine degli album dai file MP3 usando TagLib - Esiste un modo migliore per scrivere questo codice?
-
20-08-2019 - |
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
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
" ;.