منتدى رياض الجنة - Riad Al-Ganah

منتدى رياض الجنة - Riad Al-Ganah (https://montada.khaledbelal.com/index.php)
-   دورة CSharp 2005 من منتديات المشاغب (https://montada.khaledbelal.com/forumdisplay.php?f=64)
-   -   الدرس الثالث عشر : التحكم بمستوى الصوت - دورة CSharp 2005 (https://montada.khaledbelal.com/showthread.php?t=777)

khaledbelal 03-22-2010 04:19 PM

الدرس الثالث عشر : التحكم بمستوى الصوت - دورة CSharp 2005
 
الدرس الثالث عشر


التحكم بالصوت

هناك العديد من الطرق للوصول إلى إجهزة الصوت في نظام التشغيل

منها الطريقة المباشرة و التي تتعامل مباشرة مع محركات أجهزة الصور

وهذه الطريقة معقدة نسبياً وقد تؤدي إلى إعطاب أجهزة الصوت في الحاسوب إذا ما أخطأ المبرمج في تعليمة واحدة

وهناك طرق غير مباشرة تتعامل مع أدوات تشكل وسيط بين أجهزة الصوت ولغة البرمجة

بحيث يسهل التعامل مع الإجهزة , و تجنب أي ضرر في أجهزة الحاسوب إذا ما حدث خطأ ما

الإداة الوسيطة التي سنستخدمها هي أداة Homa_Audio

وهذه الأداة تستخدم إصدار حديث من مكتبة Microsoft.DirectX.dll

وتستخدم مكتبة جديدة Microsoft.DirectX.DirectSound.dll

وبالتالي يجب إستبدال أداة Microsoft.DirectX.dll من الدروس السابقة

بالإصدار الجديد الذي سيتم تنزيله مع الأداة الوسيطة

التطبيق:

أنسخ هذا الملف إلى مجلد Debug داخل مجلد bin داخل مجلد المشروع

الإن إفتح المشروع , ومن نافذة متصفح المشروع إختر Add Reference كما فعلنا في الدرس الرابع :

http://www.7oma.com/csharp/images/image4-3.jpg

ستظهر لك هذه النافذة:

http://www.7oma.com/csharp/images/image13-1.jpg

إختر Browse من تبويب .Net Assemply ثم أضف ملف

Homa_Audio.dll

الذي قمت بتنزيله

حتى يظهر الملف في قائمة الملفات المختارة رقم 3 , ثم إختر OK

سترى أن الملف تم إضافتها إلى قائمة الملفات الملحقة :

http://www.7oma.com/csharp/images/image13-2.jpg

الآن في أعلى كود النافذة الرئيسية للبرنامج

قم بإستدعاء الملف ليتعرف عليه المعالج وذلك بإضافة الكود:
كود PHP:

     using Homa_Audio

يضاف هذا الكود أسفل تعليمات الإضافة السابقة كما في الصورة :

http://www.7oma.com/csharp/images/image13-3.jpg

الآن قم بتعريف كائن التحكم بالصوت :
كود PHP:

     private HVolume hv=new HVolume(); 

تحت المتغيرات من الدروس السابقة :

وإذهب إلى التصميم , وإسحب إلى الفورم إداة TrackBar


وغير ترتيب أدوات الفورم حتى يصبح شكلها هكذا :

http://www.7oma.com/csharp/images/image13-5.jpg

ثم إختر الأداة التي قمت بإضافتها وغير خاصية Name إلى vt

وغير أيضاً خاصية Value من 0 إلى 10 حيث ستكون هذه هي أداة التحكم بالصوت

من التصميم أنقر مزدوجاً على أداة التحكم بالصوت لتنتقل إلى الكود , ثم أكتب هناك الكود التالي :

كود PHP:

     hv.Volume=vt.Value

كائن التحكم بالصوت hv يحتوي على خاصية Volume تستقبل رقم من 0 إلى 10 يمثل مستوى الصوت

فلو أسندنا لهذه الخاصية القيمة 0 فلن نسمع أي صوت

وبالتالي فهذه الخاصية ستأخذ أي قيمة من 0 إلى 10 من خلال كائن شريط التحكم بالصوت vt

الكود السابق يقوم بقراة قيمة شريط التحكم بالصوت vt و إسنادها إلى كائن التحكم بالصوت hv

الواجب :

أضف مربع إختيار Check Box يمثل خاصية كتم الصوت ليصبح التطبيق هكذا :

http://www.7oma.com/csharp/images/image13-6.jpg

مساعدة :

إسحب أداة مربع الإختيار إلى النافذة الرئيسية :

http://www.7oma.com/csharp/images/image13-7.jpg

ثم إختره وغير خاصية Name إلى mute وخاصية Text إلى "كتم"

ثم أنقر عليه مزدوجاً لتنتقل إلى الكود وأكتب هذا الكود هناك :
كود PHP:

                 if(mute.Checked)
            {                    
            
hv.Volume=...;
            }
            else
            {
            
hv.Volume=vt.Value;
            } 

الكود السابق يفحص مربع الإختيار إذا كان مختاراً ينفذ من بين الحاصرتين الأولى

وإن لم يكن مختاراً ينفذ ما بين الحاصرتين الثانية وهي إسناد قيمة شريط التحكم بالصوت vt.Value

إلى خاصية Volume في كائن التحكم بالصوت hv

أكل الفراغ بقيمة محددة لكتم الصوت - تم شرحها سابقاً في الدرس -

ثم أرسل التطبيق

ملاحظة :

عند تشغيل التطبيق ثم تفعيل مربع "كتم" سينقطع الصوت

ولكن عند تحريك شريط التحكم بالصوت سيرجع الصوت مع أن مربع "كتم" مفعل

وبالتالي يجب وضح شرط في حدث تحريك كائن الصوت ليتم فحص مربع "كتم"

فإذا كان مربع "كتم" مفعلاً فلا يجب أن يتغير الصوت , ويصبح كود تحريك شريك التحكم بالصوت هكذا :
كود PHP:

                 if(mute.Checked)
            {                    
            }
            else
            {
            
hv.Volume=vt.Value;
            } 

الكود السابق يفحص إذا كان مربع "كتم" مفعل فلن ينفذ شي

وإن لم يكن مفعلاً فسينفذ كود تغيير الصوت

يمكن كتابة الكود السابق بطريقة أخرى , بإستخدام معامل العكس !

حيث يتم إضافة رمز التعجب ! قبل الجملة المنطقية ليعكس الجملة كلها

مثلاً :
كود PHP:

 
                 
if(mute.Checked

تعني إذا كان مربع الكتم مفعل , و :

كود PHP:

                 if(!mute.Checked

تعني إذا لم يكن مربع الكتم مفعلاً

وبالتالي فيمكن كتابة كود تحريك شريط التحكم بالصوت هكذا :
كود PHP:

                 if(!mute.Checked)
            {
            
hv.Volume=vt.Value;
            } 

. نهاية الدرس الثالث عشر





و ما زالت الدروس مستمرة


الساعة الآن 01:25 PM.

Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By Almuhajir
النسخة الفضية

Ads Management Version 3.0.1 by Saeed Al-Atwi

a.d - i.s.s.w