المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الدرس الرابع عشر : تسجيل الأصوات - دورة CSharp 2005


khaledbelal
03-22-2010, 04:26 PM
الدرس الرابع عشر


تسجيل الصوت

سنضيف في هذا الدرس خاصية مهمة للتطبيق

وهي إمكانية تسجيل الصوت سواء من الإجهزة الخارجية بواسطة لاقط الصوت

أو من الكمبيوتر نفسة بإستخدام خاصية Mix in

نحتاج في هذا الدرس إلى إصدار جديد من مكتبة Homa_Audio

إنسخ ملف المكتبة الجديد من هنا (http://www.7oma.com/csharp/Homa_Audio.zip)

وإستبدل الملف الموجود في مجلد Debug بهذا الملف

ثم من التطبيق إذهب إلى متصفح المشروح و أزل الملف القديم من References

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

ثم قم بإضافة الإصدار الجديد من المكتبة إلى References كما فعلنا سابقاً :

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


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

الإصدار الجديد يحتوي على كائن HAudio الذي يقوم يقوم بعمليات التسجيل

ولإستخدام هذا الكائن في التطبيق لا بد من تعريفه وليكن إسمه ra

إنسخ كود التعريف التالي تحت تعريف كائن تغيير الصوت من الدرس السابق :


private HAudio ra=new HAudio();

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

هذا الكائن يحتوي على إجراء التسجيل Record والذي يستقبل مدخل من نوع سلسلة نصية تمثل مسار الملف الي سيتم التسجيل إليه

مثلاً التعليمة التالي :

ra.Record(@"c:\record.wav");

تقوم بتسجيل الصوت إلى الملف record.wav في القرص المحلي c

أي أن كائن التسجيل يقوم بإنشاء الملف record.wav ثم تسجيل الصوت إليه

ولكن يجب أن لا يكون مسار الملف ثابت , يجب أن يختار المستخدم المكان الذي يرغب بتسجيل الصوت إليه

لذلك سنستخدم نافذة جاهزة أخرى وهي نافذة حفظ الملفات SaveFileDialog

التسجيل

إذهب إلى نافذة التصميم , وإسحب زر جديد من صندوق الادوات يمثل زر التسجيل وأضف إليه صورة مناسبة

إسحب أداة حفظ الملفات SaveFileDialog من صندوق الأدوات

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

وحددها من الشريط الأصفر في الأسفل

ثم غير خاصية Name إلى SF :

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

وغير خاصية FileName إلى new.wav

أنقر مزدوجا على زر التسجيل وأنسخ هذا الكود :

SF.ShowDialog();
ra.Record(SF.FileName);

السطر الأول يقوم بفتح أداة حفظ الملفات SF كما فعلنا سابقاً في أداة فتح الملفات OF

السطر الثاني يستدعي إجراء التسجيل في كائن تسجيل الصوت ra الذي عرفناه سابقاً

وإستبدلنا مدخل مسار ملف الصوت بناتج أداة حفظ الملفات حيث أن خاصية FileName في كائن SF

ترجع بقيمة سلسلة نصية تمثل المسار المختار من قبل المستخدم

إيقاف التسجيل

كائن التسجيل يحتوي على إجراء أخر يقوم بعملية إيقاف التسجيل وحفظ الملف

StopRecording هو إجراء إيقاف التسجيل , فالتعليمة التالية :


ra.StopRecording();

هي تعليمة إستدعاء إجراء إيقاف التسجيل

وهذا الإجراء يوقف عملية إلتقاط الصوت ثم يقوم بحفظ الملف الناتج

أي أن ملف التسجيل لن يتم إنشاؤه بشكل صحيح إلا بعد إستدعاء إجراء إيقاف التسجيل

إذهب إلى التصميم وأضف زر يمثل زر إيقاف التسجيل وأكتب داخله الكود المناسب

وذلك هو الواجب ..

ملاحظة :

يمكن للتطبيق الآن أن يسجل الصوت من نفسه , حيث أن إدوات التسجيل منفصلة عن ادوات التشغيل وهذه ميزه مهمة

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