Taglib을 사용하여 MP3 파일에서 앨범 아트 추출 -이 코드를 작성하는 더 좋은 방법이 있습니까?

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

문제

Visual Basic 9 (vs2008)와 Taglib를 사용하고 있습니다.

다음 코드는 MP3 파일에서 앨범 아트를 추출하고 그림 상자에 표시합니다.

이 코드를 작성하는 더 좋은 방법이 있습니까?

 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에 친숙하지 않지만 이것을 쓰는 더 좋은 방법이 많이있는 것처럼 보이지 않습니다. 내가 줄 수있는 유일한 제안은 유형 추론을 활용하여 코드의 양을 줄일 수 있다는 것입니다. "옵션 lent"가 현재 켜져있는 경우 두 변수 선언에 명시적인 유형이 필요하지 않습니다. 이것은 실제로 코드의 품질을 변경하지는 않지만 코드의 양을 줄입니다.

예시

 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 부동산은 어떤 이유로 든 비어 있고 액세스하려고하면 오류가 발생합니다. ".Pictures".

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top