TagLibを使用してMP3ファイルからアルバムアートを抽出する-このコードを記述するより良い方法はありますか?
-
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に親しみはありませんが、これを書くためのより良い方法がたくさんあるようには見えません。私ができる唯一の提案は、型推論を利用することでコードの量を減らすことができるということです。 <!> quot; Option Infer <!> quot;の場合、2つの変数宣言は明示的な型を必要としません。現在オンです。ただし、実際にはコードの品質は変わりませんが、コードの量が減るだけです。
例
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()
がエラーをスローしたり、<!> quot; Nothing
<!> quot;を返したりする場合、エラー処理を追加できます。また、何らかの理由でTag
プロパティが空の場合、<!> quot; .Pictures
<!> quot;にアクセスしようとするとエラーがスローされます。
所属していません StackOverflow