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();
هي تعليمة إستدعاء إجراء إيقاف التسجيل
وهذا الإجراء يوقف عملية إلتقاط الصوت ثم يقوم بحفظ الملف الناتج
أي أن ملف التسجيل لن يتم إنشاؤه بشكل صحيح إلا بعد إستدعاء إجراء إيقاف التسجيل
إذهب إلى التصميم وأضف زر يمثل زر إيقاف التسجيل وأكتب داخله الكود المناسب
وذلك هو الواجب ..
ملاحظة :
يمكن للتطبيق الآن أن يسجل الصوت من نفسه , حيث أن إدوات التسجيل منفصلة عن ادوات التشغيل وهذه ميزه مهمة
.نهاية الدرس الرابع عشر .
تسجيل الصوت
سنضيف في هذا الدرس خاصية مهمة للتطبيق
وهي إمكانية تسجيل الصوت سواء من الإجهزة الخارجية بواسطة لاقط الصوت
أو من الكمبيوتر نفسة بإستخدام خاصية 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();
هي تعليمة إستدعاء إجراء إيقاف التسجيل
وهذا الإجراء يوقف عملية إلتقاط الصوت ثم يقوم بحفظ الملف الناتج
أي أن ملف التسجيل لن يتم إنشاؤه بشكل صحيح إلا بعد إستدعاء إجراء إيقاف التسجيل
إذهب إلى التصميم وأضف زر يمثل زر إيقاف التسجيل وأكتب داخله الكود المناسب
وذلك هو الواجب ..
ملاحظة :
يمكن للتطبيق الآن أن يسجل الصوت من نفسه , حيث أن إدوات التسجيل منفصلة عن ادوات التشغيل وهذه ميزه مهمة
.نهاية الدرس الرابع عشر .