ضبط و پخش صدا توسط میکروفن (سی شارپ)

یکشنبه 29 دی 1392

استفاده از میکروفن (microphone) در سی شارپ (#C)...<br />در این مقاله با نحواه استفاده از میکروفن در سی شارپ با استفاده از کتابخانه های موجود در ویندوز آشنا می شودید<br />ضبط صدا ، ذخیره صدای ضبط شده ، پخش صدای ذخیره شده

ضبط و پخش صدا توسط میکروفن (سی شارپ)

سلام دوستان

امروز می خوام یادتون بدون توسط سی شارپ صدا رو با میکروفن بط کنید

و پخش هم کنید

خب ابتدا فرم را ساخته

سپس فضاهای نام را اضافه می کنیم

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

برای ضبط صدا از کتابخانه داخل ویندوز استفاده میکنیم

ولی چون این کتابخانه دات نت نیست از دستور زیر استفاده میکنیم

[DllImport("winmm.dll")]

    public partial class Form1 : Form
    {
        [DllImport("winmm.dll")]
        private static extern int mciSendString(string MciComando, string MciRetorno, int MciRetornoLeng, int CallBack);

خب باید دستورات را ارسال کنیم

کلید ضبط

     label1.Visible = true;
            mciSendString("open new type waveaudio alias Som", null, 0, 0);
            mciSendString("record Som", null, 0, 0);

کلید ایست که بعد از توقف مسیری برای ذخیره فایل رکورد شده از شما دریافت میکند و ذخیره میکند

           label1.Visible = false;
            mciSendString("pause Som", null, 0, 0);
          
            SaveFileDialog save = new SaveFileDialog();
            save.Filter = "wave|*.wav";

            if (save.ShowDialog() == DialogResult.OK)
            {
                mciSendString("save Som " + save.FileName, null, 0, 0);
                mciSendString("close Som", null, 0, 0);
            }

و در نهایت کلید پخش که فایل انتخاب میکنید و پخش میکند

       if (musica == "")
            {
                OpenFileDialog open = new OpenFileDialog();
                open.Filter = "Wave|*.wav";
                if (open.ShowDialog() == DialogResult.OK) { musica = open.FileName; }
            }
            mciSendString("play " + musica, null, 0, 0);

 

خب تایمر هم وجود داره برای نمایش زمان ضبط که در ساعت شروع را دریافت میکند و در هر لحظه با ساعت جاری مقایسه میکنه

     TimeSpan dt = DateTime.Now - StartTime;
            lblTime.Text = dt.Hours + ":" + dt.Minutes + ":" + dt.Seconds;

 

نمونه هم ضمیمه کردم

امیدوارم خوشتون اومده باشه

 

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

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان
  • C#.net
  • 8k بازدید
  • 19 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید