Извлечение обложки альбома из файлов MP3 с помощью TagLib. Есть ли лучший способ написать этот код?

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

Вопрос

Я использую 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;.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top