DxPackNet 3.音频捕捉(录音)

用DxpackNet捕捉音频其实很简单 

1.初始化控件

       IDxMicrophCapture microphone;
        private void Form1_Load(object sender, EventArgs e)
        {
            //创建麦克风控件
            microphone = DxFactory.CreateDxCompent<IDxMicrophCapture>(100);
            //设置音频数据回调
            microphone.AudioCb = auCaptureBufferCB;
        }

2.打开设备

       private void button1_Click(object sender, EventArgs e)
        {
            //创建音频文件
            fs = new FileStream(textBox1.Text.Trim(), FileMode.Create);
            //打开麦克风设备
            microphone.Open();
            //开始录音
            microphone.Start();
        }

3.通过回调函数获得音频数据,写音频文件,或者输出到其他平台

        private void auCaptureBufferCB(byte[] buffer, int length)
        {
            //将音频流写入文件
            fs.Write(buffer, 0, length);
        }

4.如果是写文件,录音完成后做收尾工作  加上wav格式的头  不然文件不被其他播放器识别

        private void button2_Click(object sender, EventArgs e)
        {
            //停止录音
            microphone.Stop();
            if (fs != null) fs.Close();
            int filesize = (int)(new FileInfo(textBox1.Text.Trim())).Length;
            //生成WAV文件头并写入音频文件 不做这个其他播放器不能识别为wav文件
            byte[] buf = microphone.GetWavHeader(filesize);
            using (fs = new FileStream(textBox1.Text.Trim(), FileMode.Open, FileAccess.Write))
            {
                fs.Seek(0, SeekOrigin.Begin);
                fs.Write(buf, 0, buf.Length);
            }
        }

 源码下载 AudioRecord.zip

posted @ 2018-02-05 18:37  dint  阅读(470)  评论(0编辑  收藏  举报