#1
|
||||
|
||||
الدرس السادس عشر : طول الملفات - دورة CSharp 2005
الدرس السادس عشر التوقيت: من الإضافات المهمة للتطبيق إضافة طول الملف و الوقت الحالي للتشغيل بالدقيقة والثانية ولإضافة ذلك نحتاج إلى إستخدام خاصية CurrentPosition في كائنات تشغيل الصوت والفيديو أو GetPosition() في كائن تشغيل ملفات الريل حيث ان هذه الخصائص ترجع قيمة من نوع رقم تحدد الثانية الحالية التي يتم تشغيلها في الملف فمثلاً إذا اعادت الخاصية CurrentPosition القيمة 120 فمعنى هذا أنه يتم الآن تشغيل الثانية رقم 120 في الملف وإذا أعادت الخاصية GetPosition() القيمة 50000 فمعنى ذلك أنه يتم الآن تشغيل الثانية رقم 50 في ملف الريل وقد سبق وشرحنا أن الإختلاف بين كائنات تشغيل الصوت والفيديو وكائن تشغيل الريل هو أن الأولى ترجع القيمة بالثانية أما كائن تشغيل الريل فيرجع القيمة بالملي ثانية و يجب قسمتها على 1000 كي نحولها إلى ثانية الحصول على طول الملف : هناك خاصية أخرى عرفناها في دروس سابقة وهو خاصية Duration في كائن مشغل الصوت والفيديو والتي ترجع قيمة من نوع رقم تمثل طول الملف بالثواني مثلاً التعليمة التالي : كود PHP:
والتعليمة : كود PHP:
لأن rp هو كائن مشغل ملفات الريل و يرجع القيمة بالملي ثانية لذلك وجب القسمة على 1000 لتحويلها إلى ثانية ولكنا نريد كتابة الوقت بالدقيقية و الثانية وعند تحويل 195 إلى دقائق تصبح ثلاث دقائق و 15 ثانية أي بهذه الصيغة : كود PHP:
إيجاد الدقائق : لإيجاد الدقائق في كائن مشغلا الصوت أو الفيديو نقسم عدد الثواني على 60 ثم نحول الناتج إلى عدد صحيح حتى يتم إزالة الكسور العشرية فمثلاً لو قيمنا 195 على 60 سيكون الناتج 3.25 و هو عدد حقيقي لكنا نريد فقط عدد الدقائق و هو 3 وبالتالي فتحويل العدد الحقيقي إلى صحيح يتكفل بإزالة الكسر 25 ويصبح الناتج 3 كود PHP:
والسطر الثاني إسناد طول الملف مقسوما على 60 للتحويله إلى دقائق ولأنا نريد فقط الدقائق دون الكسور سنستخدم دالة جديدة Math.Floor والتي تحذف الكسر وترجع فقط العدد الصحيح هذه الدالة لها مدخل من نوع رقم Double ودالتي Duration في كائنات الصوت والفيديو ترجع Double أيضاً كود PHP:
كود PHP:
وكما نعلم في الرياضيات فإن : كود PHP:
كود PHP:
كود PHP:
وأيضاً دالة GetLength في كائن مشغل الريل لا ترجع قيمة من نوع Double وهذا يسبب مشكلة في التعامل مع الدالة Math.Floor لأنه يجب أن تستقبل مدخل من نوع Double وبالتالي يجب تحويل ناتج الدالة GetLength إلى Double : ويصبح كود التحويل كاملاً هكذا : كود PHP:
نقصد هنا بالثواني الكسر المتبقي من قسمة الثواني على 60 ولإستنتاج المعادلة الرياضية المستخدمة لإيجاد الثواني سنقسم عدد الثواني 195 إلى أربعة أقسام: كود PHP:
يجب لإيجاد الثواني المتبقية أن نستبعد الثواني التي تم تحويلها إلى دقائق ان أننا نقوم بطرح الثواني التي تم تحويلها إلى دقائق من عدد الثواني الإجمال : كود PHP:
لنحول المعادلة قليلاً : كود PHP:
وبالتالي يمكن كتابة المعادلة هكذا : كود PHP:
ففي كائن تشغيل الفيديو ستكون تعليمة إيجاد الثواني المتبقية هكذا : كود PHP:
كود PHP:
كود PHP:
كود PHP:
كود PHP:
المعادلتين السابقة كانت لإيجاد طول الملف بالدقيقة والثانية ونحتاج إلى معادلات أخرى لإيجاد الموقع الذي يتم تشغيله حالياً بالدقيقة والثانية وهي نفس المعادلات السابقة بإستثناء إستبدال Duration بـ CurrentPosition في كائنات تشغيل الصوت والفيديو وإستبدال GetLength بـ GetPosition في كائن تشغيل ملفات الريل حيث أن CurrentPosition و GetPosition ترجع رقم الثانية التي يتم تشغيلها الآن أو عدد الثواني التي تم تشغيلها , وبالتالي فيمكن حساب الدقائق والثواني من خلال تطبيق المعادلات السابقة على عدد الثواني التي تم تشغيلها مثلاً لإيجاد الدقيقة التي يتم تشغيلها حالياً في كائن مشغل الفيديو : كود PHP:
كود PHP:
كود PHP:
كود PHP:
كود PHP:
كود PHP:
إفتح تطبيق الدرس السابق , وأضف متغير محلي من نوع نص يمثل طول الملف بالدقيقة والثانية وليكن length إنسخ هذا الإجراء إلى الكود وتأكد أنه خارج أي إجراء آخر : كود PHP:
حيث إستخدمنا جملة شرط ثلاثية لفحص نوع الملف و أدمجنا معادلتي إيجاد الدقائق والثواني في مكان واحد لكل نوع كما شرحنا في الدرس وفي السطر الأخير من كود جملة try حولنا الدقائق إلى نص , ثم أضفنا إليها : و الثواني بعد تحويلها أيضاً إلى نص حيث ان المتغير length سيحمل قيمة من نوع نص تمثل طول الملف بهذه الصيغة : كود PHP:
وبالتالي فإن إجراء تحميل الملف LoadFile هو المكان المناسب لإستدعاء إذهب إلى كود التطبيق و أضف تعليمة الإستدعاء التالية في نهاية إجراء تحميل الملف : كود PHP:
كود PHP:
وإجراء إيجاد الوقت الحالي أثناء التشغيل مشابه جدا لإجراء إيجاد طول الملف ولكن قبله نحتاج إلى مكان على النافذة نكتب عليه طول الملف و الوقت الحالي للتشغيل حيث سيكون بعذة الصيغة : كود PHP:
إفتح نافذة التصميم و إسحب كاشن اللافته Label إلى النافذة : ثم إختره وغير خاصية Name إلى len و غير خاصية Text إلى : كود PHP:
كود PHP:
في السطر الأخر من جملة try حولنا الدقيقة التي يتم تشغيلها إلى نص ثم أضفنا إليها ":" ثم أضفنا إليها الثانية التي يتم تشغيلها حالياً , ثم أضفنا إليها "/" ثم طول الملف الذي أوجدناه في الإجراء SetLength بقي أن نجد المكان المناسب لإستدعاء هذا الإجراء فالمفروض أن نستدعي الإجراء كل ثانية أي أنا نحتاج إلى مؤقت Timer ولكن يوجد لدينا مؤقت من الدروس السابق لذلك سنستخدمه عوضاً عن إضافة مؤقت جديد إذهب إلى كود المؤقت timer1 من خلال النقر مزدوجا على كائن الموقت timer1 من نافذة التصميم وأضف تعلمية الإستدعاء التاليه في آخر كود المؤقت : كود PHP:
كود PHP:
أرسل التطبيق .نهاية الدرس السادس عشر.
|
|
|
المواضيع المتشابهه | ||||
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
الدرس الخامس عشر : قوائم البرنامج - دورة CSharp 2005 | khaledbelal | دورة CSharp 2005 من منتديات المشاغب | 0 | 03-22-2010 05:28 PM |
الدرس السادس : تشغيل ملفات الريال بلاير - دورة CSharp 2005 | khaledbelal | دورة CSharp 2005 من منتديات المشاغب | 0 | 03-22-2010 03:32 PM |
الدرس الخامس : تشغيل ملف فيديو - دورة CSharp 2005 | khaledbelal | دورة CSharp 2005 من منتديات المشاغب | 0 | 03-22-2010 03:26 PM |
الدرس الرابع : الإجراءات والدوال - دورة CSharp 2005 | khaledbelal | دورة CSharp 2005 من منتديات المشاغب | 0 | 03-19-2010 03:39 PM |
الدرس الثاني : المتغيرات - دورة CSharp 2005 | khaledbelal | دورة CSharp 2005 من منتديات المشاغب | 0 | 03-12-2010 03:56 PM |