Извлечение обложки альбома из файлов MP3 с помощью TagLib. Есть ли лучший способ написать этот код?
-
20-08-2019 - |
Вопрос
Я использую Visual Basic 9 (VS2008) и TagLib.
Следующий код извлекает обложку альбома из файла MP3 и отображает ее в PictureBox.
Есть ли лучший способ написать этот код?
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
Решение
Я не очень хорошо знаком с TagLib, но, похоже, нет лучшего способа написать это.Единственное предложение, которое я могу дать, — это уменьшить объем кода, воспользовавшись выводом типа.Для двух объявлений переменных не требуется явный тип, если в данный момент включен параметр «Option Infer».Однако на самом деле это не меняет качество кода, а просто уменьшает его объем.
Пример
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
Другие советы
На первый взгляд, все выглядит хорошо для меня.
Вы можете добавить некоторую обработку ошибок, например, если TagLib.File.Create()
выдает ошибку или возвращает " Nothing
" ;. Также, если свойство Tag
по какой-либо причине пустое, будет выдано сообщение об ошибке, если вы попытаетесь получить доступ к & Quot; .Pictures
& Quot;.