DxPackNet 3.音频捕捉(录音)

时间:2021-06-14 21:21:26

用DxpackNet捕捉音频其实很简单

1.初始化控件

       IDxMicrophCapture microphone;
private void Form1_Load(object sender, EventArgs e)
{
//创建麦克风控件
microphone = DxFactory.CreateDxCompent<IDxMicrophCapture>();
//设置音频数据回调
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, , 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(, SeekOrigin.Begin);
fs.Write(buf, , buf.Length);
}
}

源码下载 AudioRecord.zip