استخراج صورة الألبوم من ملفات MP3 باستخدام TagLib - هل هناك طريقة أفضل أكتب هذا الرمز؟
-
20-08-2019 - |
سؤال
وأنا باستخدام 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 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
".