نحوه ضبط و ذخیره صدا در #C

در این مقاله نحوه ضبط و ذخیره صدا را همراه با ذکر مثال توضیح خواهیم داد

نحوه ضبط و ذخیره صدا در #C

برای این کار مطابق مراحل زیر عمل کنید :

1 - ابتدا یک windows form (در این مثال با نام microphone) ایجاد میکنیم

2 - سپس سه دکمه در صفحه قرار میدهیم .یک دکمه برای ظبط صدا , یک دکمه برای ذخیره و توقف عملیات ضیط و یک دکمه برای اجرای صدای ضبط شده

هنگامی که طراحی صفحه خاتمه یافت , فضای نام System.Runtime.InteropServices را اضافه میکنیم مانند کد زیر :

    using System.Diagnostics;  
     using System;  
     using System.Windows.Forms;  
     using System.Collections;  
     using System.Drawing;  
     using Microsoft.VisualBasic;  
     using System.Data;  
     using System.Collections.Generic;  
     using System.Runtime.InteropServices;  

سپس در ماژول کد نویسی خود یک تابع برای دسترسی به winmm.dll ایجاد میکنیم , مانند کد زیر :

[DllImport("winmm.dll",EntryPoint="mciSendStringA", ExactSpelling=true, CharSet=CharSet.Ansi, SetLastError=true)]  
private static extern int record(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback); 

در قسمت رویداد دکمه ضبط کد زیر را مینویسیم :


 timer1.Enabled = true;  
   timer1.Start();  
   record("open new Type waveaudio Alias recsound", "", 0, 0);   
   record("record recsound", "", 0, 0);  

در قسمت بالا تابعی با نام record فرا خوانی میشود و هنگامی که کاربر بر روی دکمه مورد نظر کلیک می کند نرم افزار آماده ضبط صدا میشود .

و در قسمت رویداد مربوط به دکمه "ذخیره / توقف" کد زیر را می نویسیم :

{  
   timer1.Stop();  
   timer1.Enabled = false;  
   record("save recsound d:\\mic.wav", "", 0, 0);  
   record("close recsound", "", 0, 0);  
}  

alias که با نام recsound در ابتدا تعریف کرده بودیم , در این قسمت فرا خوانی می شود  , این دکمه صدای ضبط شده را در آدرسی که ما در نرم افزار مشخص کرده ایم و با پسوندی مشخص ذخیره می کند , به عنوان مثال ما در درایو D و با پسوند mic.wav ذخیره می کنیم .

سپس برای دکمه "اجرا " کدهای زیر را می نویسیم :

 ms = 0;  
   h = 0;  
   s = 0;  
   m = 0;  
   timer1.Enabled = false;  
   lblhur.Text = "00";  
   lblmin.Text = "00";  
   lblsecond.Text = "00";  

ما تابع play را در Audio برای اجرای صدای ضبط شده استفاده می کنیم .

فایل های ضمیمه