مرحبا بكم فى موقعكم التعليمى مفيدا ومستفيدا

انضم إلى المنتدى ، فالأمر سريع وسهل

مرحبا بكم فى موقعكم التعليمى مفيدا ومستفيدا
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

الدرس الخامس - تشغيل ملف فيديو

اذهب الى الأسفل

الدرس الخامس  -  تشغيل ملف فيديو Empty الدرس الخامس - تشغيل ملف فيديو

مُساهمة من طرف sayed السبت أكتوبر 29, 2011 12:44 am

الدرس الخامس
تشغيل ملف فيديو
دوال تشغيل الفيديو موجودة في ملف Microsoft.DirectX.AudioVideoPlayback.dll
الذي أضفناه إلى التطبيق في الدرس السابق
دوال الفيديو تشبه إلى حد كبير دوال الصوت عدى عن إختلافات بسيطة
من اهم هذه الإختلافات أنه يمكنك أن تحدد كائن حاضن Owner Control لشاشة الفيديو
معنى كائن حاضن اي كائن يعمل كشاشة فيديو
أما إذا لم تحدد كائن حاضن فان التطبيق سيفتح نافذه جديدة لتكون شاشة الفيديو
قراءة أحداث المفاتيح
كل كائن له صفات و دوال كما عرفنا سابقاً , والكائنات تحتوي أيضاً على أحداث Events
مثلاً الزر له عدة أحداث منها عند الضغط عليه Click وعند الضغط المزدوج DoubleClick
و عند مرور مؤشر الماوس به MouseOver
وفي الدروس السابقة إستخدمنا حدث Click فقط
للتصفح بين أحداث الكائن , إختر الكائن ثم أفتح نافذة الصفات "الخواص" واختر زر الأحداث:
الدرس الخامس  -  تشغيل ملف فيديو 41
ستظهر لك قائمة بجميع الأحداث للكائن المحدد
ولكي تضيف تعليمات عند حدوث حدث معين اضغط مزدوجاً على أسم الحدث في القائمة
ستتنتقل إلى الشفرة لتكتب التعليمات التي تنفذ عن حدوث ذلك الحدث
ومن الأحداث المهة حدث KeyPress وينطلق هذا الحدث عند الضغط على أي مفتاح
في لوحة المفاتيح .
التطبيق
إفتح تطبيق الدرس السابق وعدل النص في زر فتح ملف الصوت إلى "فتح ملف ميديا"
وفي زر تشغيل ملف الصوت إلى "تشغيل ملف ميديا"
أضف زراً جديداً وغير النص فيه إلى "ملئ الشاشة"
قبل تشغيل ملف الفيديو يجب أن نحدد له كائن حاضن ليعمل كشاشة
افتح التصميم وأضف أدات البانيل إلى الفورم:
الدرس الخامس  -  تشغيل ملف فيديو 42
تأكد من إختيار البانيل و غير صفة الإسم إلى p1
غير صفة العرض Width إلى 400 وصفة الإرتفاع Height إلى 300
الدرس الخامس  -  تشغيل ملف فيديو 43
من خلال صفة BackgroundImage إختر اي صورة لتكون خلفية الشاشة
ليصبح شكل النافذة هكذا:
الدرس الخامس  -  تشغيل ملف فيديو 44
أضغط مزدوجاً على أي زر للذهاب إلى الشفرة ,
نحتاج إلى تعريف كائن عام Global من نوع فيديو ولأننا سنستخدمة في أكثر من إجراء
سنعرفه خارج جميع الإجراءات والدوال , إذهب إلى الشفرة حيث عرفنا متغير الصوت في الدرس السابق
وأكتب تعريف كا ئن الفيديو :
كود:
private Video vp;
تحت تعريف كائن الصوت من الدرس السابق :
الدرس الخامس  -  تشغيل ملف فيديو 45
سنجعل التطبيق يفتح ملفات صوت أو ملفات فيديو , لكن المشكلة أن للصوت كائن
وللفيديو كائن آخر , وبالتالي يجب أن نعرف نوع الملف حتى نستخدم الكائن المحدد
وبما أن أنواع الفيديو كثيرة جداً فلا يمكننا فحص نوع الملف لتأكد من نوعه
وبالتالي فالحل الوحيد هو أن نحاول أولا تشغيل الملف بكائن الفيديو
فإن ظهر لنا خطأ فنحاول نشغلة بكائن الصوت , وأن ظهر لنا خطأ للمرة الثانية فالملف غير صالح
قد يسأل البعض لماذا بدأنا بتجربة كائن الفيديو مع أن معظم الملفات ستكوت صوت
والإجابة أن كائن الصوت ممكن أن يشغل ملفات فيديو بدون صورة , يعني انه يفتح ملف الفيديو
ويشغل الصوت الذي فيه , وبالتالي فربما يكون الملف فيديو ويتم تشغيله كملف صوت
لذلك يجب أولاً تجربة كائن الفيديو حتى إذا كان ملف فيديو يشغل الصوت مع الصورة
وإذا كان ملف صوت نجرب كائن الصوت ..
لعمل ذلك نحتاج إلى تنفيذ جملة تعقب الإخطاء try مرتين متداخلتين:
كود:
try
{
//شغل ملف الفيديو
}
catch
{
try
{
//شغل ملف الصوت
}
catch
{
//الملف غير صالح
}

}

أولا سنجرب فتح ملف فيديو فإذا حدث خطأ فإن المترجم ينتقل لتنفيذ التعليمات داخل جملة catch
والتي هي باللون الأزرق , وهناك جملة tryأخرى نقوم من خلالها بتجربة فتح ملف صوت
فإذا حدث أي خطأ فان المترجم ينتقل لتنفيذ تعليمات catch التي تحتها خط
في زر فتح ملف الميديا أمسح الكود السابق وأكتب بدلاً عنه :
كود:
OF.ShowDialog();
try
{
vp = Video.FromFile(OF.FileName);
vp.Owner = p1;
p1.Width = 400;
p1.Height = 300;
}
catch
{
try
{
ap = Audio.FromFile(OF.FileName);
}
catch
{
MessageBox.Show("الرجاء إختيار ملف صالح");
}


}

التعليمة OF.ShowDialog تفتح نافذة فتح ملف ميديا
عند إختيار الملف نجرب تشغيل الفيديو عبر هذه التعليمات:
كود:
vp = Video.FromFile(OF.FileName);
vp.Owner = p1;
p1.Width = 400;
p1.Height = 300;

في السطر الأول نحمل الملف الموجود في كائن فتح الملف إلى كائن الفيديو
في السطر الثاني نحدد الكائن الحاضن Owner لكائن الفيديو
في السطر الثالث والرابع , نعيد تحديد حجم الكائن الحاضن إلى الحجم الأصلي
لأن ملفات الفيديو لها أحجام مختلفة وحجم الكائن الحاضن قد يختلف على حسب حجم الصورة
في ملف الفيديو لذلك من الأفضل إعادة تحجيم الكائن الحاضن
عند حدوث أي خطأ سينتقل المترجم لتنفيذ الكود باللون الأزرق وتعليمة تحميل ملف الصوت إلى كائن الصوت:
كود:
ap = Audio.FromFile(OF.FileName);
عند حدوث خطأ آخر هنا سينتقل المترجم إلى تنفيذ تعليمة catch الداخلية وهي إظهار رسالة الخطأ
سنستخدم نفس الطريقة في إجراء الضغط على زر تشغيل ملف الميديا
إفتح التصميم وأضغط علية مزدوجاً للإنتقال للشفرة أمسح الشفرة الموجودة وأكتب بدلاً منها:
كود:
try
{
vp.Play();
}
catch
{
try
{
ap.Play();
}
catch
{
MessageBox.Show("حدث خطأ اثناء محاولة تشغيل الملف");
}

}

نجرب تشغيل ملف الفيديو وإذا حدث خطا نجرب تشغيل ملف الصوت وإذا حدث خطأ آخر نظهر رسالة.
افتح التصميم واضغط مزدوجاً على زر ملئ الشاشة وأكتب تعليمة ملئ الشاشة لكائن الفيديو:
كود:
vp.Fullscreen = true;
كائن الفيديو يحتوي على صفة Fullscreen من نوع قيمة بوليانية اما صح أو خطأ
فإذا حددنا الصفة بقية true فأن تشغيل الفيديو سيكون ملى الشاشة
و إذا حددناها false سيرجع تشغيل الفيديو إلى الكائن الحاضن
عرفنا كيف نجعل التشغيل ملئ الشاشة لكن المشكل كيف نرجعه للكائن الحاضن
لأنه في وضع ملى الشاشة لن نستطيع أن نرى أي شيئ في شاشة الكمبويتر سوى الفيديو
يأتي هنا دور حدث الضغط على أي من مفاتيح لوحة المفاتيح حيث سنجعل الفيديو
يرجع إلى الكائن الحاضن بمجرد الضغط على أي من مفاتيح لوحة المفاتيح
إفتح التصميم وإختر النافذة الأساسية "لا تختر أي زر أو كائن تأكد من إختيار النافذه كلها"
إذهب إلى قائمة الإحداث وأضغط مزردوجاً على الحدث KeyPress
الدرس الخامس  -  تشغيل ملف فيديو 46
ستنتقل إلى شفرة الحدث , أكتب تعليمة إعادة صورة الفيديو إلى الكائن الحاضن :
كود:
vp.Fullscreen = false;
هناك مشكلة ستواجهنا هنا وهي في حالة إذا كان تركيز لوحة المفاتيح على زر محدد
فلن ينطلق حدث الضغط على النافذة , سينطلق الحدث على الزر المحدد فقط
والشفرة السابقة على النافذه الأساسية ,,,
الحل أن هناك صفة في النافذة تمكنها من إطلاق الحدث حتى ولو حصل في أي كائن من الكائنات
هذه الخاصية هي KeyPreview عدلها من False إلى True لتصبح كما في الصورة
الدرس الخامس  -  تشغيل ملف فيديو 47
الآن شغل البرنامج وجرب تشغيل ملف صوت أو فيديو او ملف نصي
تلميحات الأدوات
أحيانا تحتاج إلى إظهار ملا حظة بسيطة للمستخدم عن وظيفة زر في التطبيق مثلاً
وتظهر هذا الملاحظات في مستطيل أصفر يظهر بمجرد مرور الماوس من فوق الزر
مثلاً لو تمرر الماوس فوق زر Start في شريط المهام ستظهر هذه الملاحظة
Click here to begin
لعمل مثل هذه الملاحظات في تطبيقنا نحتاج لإضافة كائن جديد
افتح التصميم واسحب كائن تلميحات الأدوات ToolTip
الدرس الخامس  -  تشغيل ملف فيديو 48
الآن في أي كائن تختارة ستجد صفة جديدة إسمها ToolTip on toolTip1
أكتب فيها أي تلميح نصي للكائن :
الدرس الخامس  -  تشغيل ملف فيديو 49
عند تشغيل البرنامج وتمرير الماوس من فوق الزر ستظهر الملاحظة هكذا:
الدرس الخامس  -  تشغيل ملف فيديو 50
الواجب
أرسل التطبيق.
.نهاية الدرس الخامس.
sayed
sayed
Admin

عدد المساهمات : 190
تاريخ التسجيل : 10/10/2011
العمر : 68
الموقع : computer.hooxs.com

https://computer.hooxs.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

- مواضيع مماثلة

 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى