3 Stimmen

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

Ich verwende Visual Basic 9 (VS2008) und TagLib.

Der folgende Code extrahiert das Albumcover aus einer MP3-Datei und zeigt es in einer PictureBox an.

Gibt es eine bessere Möglichkeit, 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

3voto

splattne Punkte 102178

Auf den ersten Blick sieht es für mich ganz gut aus.

Sie könnten eine Fehlerbehandlung hinzufügen, zum Beispiel wenn TagLib.File.Create() wirft einen Fehler oder gibt " Nothing ". Auch wenn die Tag Eigenschaft aus irgendeinem Grund leer ist, wird ein Fehler ausgelöst, wenn Sie versuchen, auf " .Pictures ".

2voto

JaredPar Punkte 699699

Ich bin nicht sehr vertraut mit TagLib, aber es sieht nicht so aus, als gäbe es einen besseren Weg, dies zu schreiben. Die einzige Anregung, die ich geben kann, ist, dass Sie die Menge an Code reduzieren könnten, indem Sie die Vorteile der Typinferenz nutzen. Die beiden Variablendeklarationen brauchen keinen expliziten Typ, wenn "Option Infer" aktiviert ist. Dies ändert jedoch nichts an der Qualität des Codes, sondern reduziert nur den Umfang des Codes.

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X