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

مشاهدة النسخة كاملة : تسجيل الصوت



كبريـ انثى ـاء
15 Sep 2009, 11:45 AM
سنضيف في هذا الدرس خاصية مهمة للتطبيق

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

أو من الكمبيوتر نفسة بإستخدام خاصية 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();
هي تعليمة إستدعاء إجراء إيقاف التسجيل

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

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

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



ملاحظة :

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

هند بلا حدود
26 Apr 2010, 01:43 PM
جزيييييييييييييت خيرا رياض الفراشات

S7arM
05 May 2010, 03:46 AM
يعطيك العافية .. مجهود رائع

HAJEB
29 May 2010, 05:41 PM
يعطيك العافية على هذا الجهد