استخراج صورة الألبوم من ملفات MP3 باستخدام TagLib - هل هناك طريقة أفضل أكتب هذا الرمز؟

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

سؤال

وأنا باستخدام 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".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top