Extrahieren Albumcover von MP3-Dateien mit TagLib - Gibt es einen besseren Weg, um diesen Code schreiben?

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

Frage

Ich bin mit Visual Basic 9 (VS2008) und TagLib.

Der folgende Code extrahiert das Albumcover von einer MP3-Datei und zeigt sie in einem PictureBox.

Gibt es einen besseren Weg, um diesen Code zu schreiben?

 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
War es hilfreich?

Lösung

ich mit TagLib nicht vertraut bin, aber es sieht nicht wie es ist viel von einem besseren Weg, dies zu schreiben. Der einzige Vorschlag, den ich geben kann, ist, dass Sie die Vorteile der Typinferenz, indem die Menge an Code reduzieren könnten. Die beiden Variablendeklarationen keinen expliziten Typen benötigen, wenn „Option Infer“ aktuell ist. Dies gilt eigentlich nicht auf die Qualität des Codes ändern aber es reduziert nur die Menge davon.

Beispiel

 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

Andere Tipps

Auf den ersten Blick sieht es in Ordnung für mich.

Sie könnten einige Fehlerbehandlung, beispielsweise hinzufügen, wenn TagLib.File.Create() einen Fehler oder gibt „Nothing“ wirft. Auch wenn die Tag Eigenschaft aus irgendeinem Grunde leer ist, wird ein Fehler ausgelöst werden, wenn Sie versuchen, „.Pictures“ zugreifen zu können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top