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