|
#1
|
||||
|
||||
الدرس السادس : تشغيل ملفات الريال بلاير - دورة CSharp 2005
الدرس السادس تشغيل ملفات الريل بلاير Playing RM Filesسنستخدم في هذا الدرس الإجراءات كثيراً , ولمزيد من التوضيح عنها أرجع إلى الدرس الرابع تقنية rm تم تصميمها بواسطة شركة .Real Networks Inc حيث أن لهذه التقنية مزايا كثيرة من أهمها حجم الملفات الصغير الذي يتيح تداول الملفات عبر الوب بسهولة في الدروس السابقة تعاملنا مع ملفات الميديا بأي تقنية ما عدا هذه التقنية ولأن هذه التقنية تختلف تماماً عن التقنيات الأخرى خصصنا لها هذا الدرس. لتشغيل ملفات rm نحتاج لملفات dll تحتوي على دوال تشغيل rm الملفات موجودة للتحميل من هنا وهي من شركة Real تم تحويرة قليلاً ليتعامل مع بيئة الدوت نت في التطبيق سنجد إختلاف بين أوامر rm والأوامر الأخرى لأن شركة Real تحتكر هذه التقنية ولا تقبل بتوزيعها على الشركات الأخرى لذلك فميكروسوفت لا تدعم تشغيل ملفات rm فمثلاً كما رأينا في الدرس السابق فان أمر تشغيل ملف صوت أو فيديو عادي هو: كود PHP:
كود PHP:
كود PHP:
الأمر رقم 2 يستخدم لتشغيل الملف الأمر 3 لإيقاف تشغيل الملف نهائياً الأمر 4 لإيقاف تشغيل الملف مؤقتاً الأمر 5 لإيجاد طول الملف بالثواني الأمر 6 لإيجاد مكان التشغيل , أي إيجاد الموقع في الملف الذي يتم تشغيله مثلاً إذا أنتجت الدالة 60 معنى ذلك أنه يتم الآن تشغيل الثانية رقم 60 من الملف في أوامر Real هناك أمرين أحدهما لقرائة الموقع والآخر لضبط الموقع أما في أوامر ميكروسوفت فالقراءة والضبط تستخدم نفس الأمر سنستخدم في هذا الدرس جميع الأوامر السابقة يتبع التطبيق في الرد التالي التطبيق إفتح تطبيق الدرس السابق أضف الملف AxInterop.RealAudioObjects.dll الذي قمت بتحميلة إلى المراجع References كما فعلنا في الدرس الرابع سنضيف في هذا التطبيق كائن عام جديد من نوع مشغل rm وليكون إسم هذا الكائن rp إختصار لـ Real Player سنقوم بتعريف هذا الكائن تحت تعريفات كائنات الصوت والصورة في الدرس السابق هكذا: كود PHP:
بعد تعريف كائن مشغل rm أصبح لدينا ثلاثة كائنات رئيسية مشغل صوت و مشغل فيديو ومشغل rm وعند فتح ملف جديد سنبدأ بإختبار هل هو ملف فيديو ثم هل هو ملف صوت ثم هل هوملف rm وبالتالي سنستخدم جملة try ثلاث مرات متداخلة عند فتح الملف وعند تشغيل الملف وعند إيقاف تشغيل الملف أو عند تقديم أو تأخير المف .. وإذا أردنا أختصار الكود لنستخدم جملة try المتداخلة فقط عند فتح الملف سنستخدمها فقط عند فتح "تحميل الملف" ومنها سنعرف نوع المف , ونقوم بخزن نوع المف في متغير عام من نوع نص , وعند تشغيل الملف بدلاً من إستخدام try المتداخله كما فعلنا في الدرس السابق سنفحص نوع الملف من خلال المتغير من نوع نص الذي خزنا فيه نوع الملف عند الفتح دون إستخدام جملة try وذلك سيسهل كثيرا ويسرع عملية تشغيل الملف والتعامل معه إذاً سنعرف متغير عام من نوع نص لخزن نوع الملف وليكون إسمه type نعرف هذا المتغير تحت تعريفات كائن الصوت والفيديو و مشغل rm هكذا: كود PHP:
اذهب إلى التصميم أضف للنافذة الأساسية زرين زر للإيقاف و زر للإيقاف المؤقت إذهب إلى كرد البرنامج .. سنقوم بكتابة إجراء مستقل لتحميل ملف الميديا إلى أحد الكائنات الثلاثة إجراء تحميل الملف وهذه الإجراء سيكون مستقله لكي نستطيع إستخدامه في أكثر من مكان لنسمي هذه الإجراء LoadFile وستكون وظيفته إختبار نوع الملف ثم ضبط قيمة المتغير type ليحمل حرف يرمز إلى نوع الملف و ايضاً هذالإجراء ستقوم بتحميل الملف للكائن المناسب من الكائنات الثلاثة الأحرف التي سيحملها المتغير type هي A إذا كان ملف صوت و V إذا كان ملف فيديو وR إذا كان ملف rm أي أن الإجراء سيفحص نوع الملف فإذا كان ملف صوت سيحمل type الحرف A ويحمل الملف إلى كائن الصوت ap أما إذا كان فيديو فيحمل type الحرف V ويحمل الملف لكائن الفيديو vp أما إذا كان الملف rm فيحمل type الحرف R ويحمل الملف لكائن الريل rp فحص نوع الملف سيكون بنفس الطريقة في الدرس السابق ولكنا سنستخدم try ثلاث مرات متداخلة أنسخ هذا الكود إلى الشفرة وتأكد أن يكون هذا الكود خارج أي دالة أخرى: كود PHP:
الإجراء هو جزء من الشفرة يمكن إستخدامه أكثر من مرة من خلال إستدعائه بإسمه فقط وبما أنه إجراء مستقلة يجب ان تكون خارج أي إجراء أخر: الإجراء يتكون من مدخل واحد Path من نوع نص ويمثل مسار الملف الذي سيتم تحميلة أي أننا عندما نستدعي الإجراء سنكتب إسمه ونعطيه مدخل من نوع نص مثلاً: كود PHP:
ملاحظة: في لغة السي شارب يعتبر حرف \ حرفاً غير مسموح به لذلك عند كتابة مسار الملف يتم إستبدالة بـ // في السطر الأول من الإجراء تعلمية StopFile وهي إستدعاء لإجراء أخر سنشرحه فيما بعد يقوم إجراء StopFile بإيقاف تشغيل أي ملف لكي يتم تحميل ملف جديد بدلاً منه وإذا لم نوقف تشغيل الملف السابق وقمنا بتحميل ملف آخر سيحدث تداخل في الملفات ويتم تشغيل أكثر من ملف في آن واحد في السطور 2 و3 و4 و5 كما هو مشروح في الكود يتم تصفير الكائنات ومعنى التصفير هو إلغاء تحميل الملفات السابقة لكي يتم تحميل ملفات جديدة بعدها جملة try الأولى تقوم بتحميل كائن الفيديو الملف المدخل من خلال المتغير Path فإذا تم التحميل بنجاح فإن التعليمة type="V" تقوم بتحميل الحرف V إلى المتغير type دلالة على أن نوع الملف هو فيديو , أما إذا حدث إي خطأ في التحميل فسوف يقفز المعالج إلى تنفيذ الكود باللون الأخظر ويتم فيها تحميل الملف لكائن الصوت فإذا تم التحميل بنجاح يتم تحميل المتغير type الحرف A دلالة على أن نوع الملف هو صوت , أما إذا حدث خطأ في التحميل فالمعالج سيقفز إلى تنفيذ الكود باللون الأحر ويتم فيه تحميل الملف إلى كائن rm "لاحظ الأختلاف في الأمر عن أوامر الصوت والفيديو" فإذا تم التحميل بنجاح يتم تحميل المتغير type الحرف R دلالة على أن نوع الملف هو ريل وإذا حدث خطأ في التحميل يقفز المعالج لتنفيذ الكود باللون البرتقالي حيث يظهر رسالة خطأ ويحمل المتغير الحرف N دلالة على أن نوع الملف غير معروف . إجراء تشغيل الملف سنقوم بكتابة إجراء مستقل أخر لتشغيل الملف , إجراء التشغيل سيكون أسهل بكثير من إجراء تحميل الملف لان لدينا نوع الملف مخزن في المتغير type ولن نقوم بفحص نوع الملف مرة أخرى حيث سنقوم بإستخدام تعليمة if لنعرف الحرف الموجود في type ومن خلالة نعرف نوع الملف فنشغل الكائن المطلوب لنسمي هذا الإجراء PlayFile ولن تكون لهذا الإجراء أي مدخلات أنسخ هذا الكود إلى الشفرة وتأكد أن يكون خارج أي إجراء أخر : كود PHP:
ولذلك سيتم تشغيل كائن الفيديو vp , إما إذا لم يكن V فينتقل المعالج للمقارنة الثانية وإلا للثالثة إجراء الإيقاف المؤقت في هذا الإجراء أيضاً سنستفيد من محتويات المتغير type لتحديد نوع الملف والتعامل مع الكائن المحدد أنسخ هذا الكود إلى الشفرة وتأكد أن يكون خارج أي إجراء أخر : كود PHP:
إجراء إيقاف التشغيل أنسخ هذا الكود إلى الشفرة وتأكد أن يكون خارج أي إجراء أخر: كود PHP:
لو قمت بتشغيل البرنامج الآن لن يتم تشغيل أي إجراء لأننا لم نستدعي أي منها إفتح التصميم وإضغط مزدوجاً على زر فتح ملف ميديا , إمسح الكود السابق وأكتب بدلاً عنه: كود PHP:
في السطر الثاني إستدعينا إجراء تحميل الملف و حملنا المدخل بناتج كائن فتح الملف أي أنه في شفرة إجراء التحميل ستكون قيمة المدخل Path هي قيمة OF.FileName بعد إستدعاء إجراء تحميل الملف استدعينا إجراء تشغيل الملف , أي أنه سيتم تشغيل الملف بمجرد إختياره إذهب إلى التصميم مجددا واضغط مزدوجاً على زر التشغيل, أمسح الكود السابق وأكتب بدلاً عنه: كود PHP:
نلاحظ كيف أستدعينا إجراء التشغيل في زر فتح الملف وفي زر التشغيل اذهب للتصميم واضغط مزدوجاً على زر الإيقاف المؤقت وأكتب فيه هذا الكود: كود PHP:
كود PHP:
ملاحظة: عند أستيراد ملف دوال الريل بلاير AxInterop.RealAudioObjects.dll تقوم بيئة التطوير بإنشاء الملف الآخر كربط بين التطبيق والملف حيث يتكون الملف Interop.RealAudioObjects.dll بجانب التطبيق بمجرد تشغيل التطبيق من بيئة التطوير وهذا الملف ضروري لأنه يعمل كوسيط بين التطبيق وملف دوال الريل إذا لم تستطيع البيئة تكوين هذا الملف لسبب أو لآخر يجب ان يوضع بجانب التطبيق أي أن ملفات dll التي يحتاجها التطبيق أصبحت أربعة ملفات مع ملفات الدروس السابقة الواجب أرسل التطبيق.. .نهاية الدرس السادس. .. 7oma حماة النهضة ..
|
|
|
المواضيع المتشابهه | ||||
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
الدرس الخامس : تشغيل ملف فيديو - دورة 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 | microtop | دورة CSharp 2005 من منتديات المشاغب | 1 | 03-16-2010 06:19 PM |
الدرس الثاني : المتغيرات - دورة CSharp 2005 | khaledbelal | دورة CSharp 2005 من منتديات المشاغب | 0 | 03-12-2010 03:56 PM |
الدرس الاول : مفهوم لغات البرمجة - دورة CSharp 2005 | microtop | دورة CSharp 2005 من منتديات المشاغب | 0 | 03-09-2010 05:45 PM |