C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c#NAudio 录音功能实现大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

在网上找了很多类似录音教程效果都不好,或根本不能录音,代码由网上借鉴修改(完整实现录音播放功能

1.首先新建引用类  recordController

public class RecordController
{
public WaveIn mWavIn;
public WaveFileWriter mWavWriter;

/// <sumMary>
/// 开始录音
/// </sumMary>
/// <param name="filePath"></param>
public void StartRecord(String filePath)
{
mWavIn = new WaveIn();
mWavIn.DataAvailable += MWavIn_DataAvailable;
// mWavIn.RecordingStopped += MWavIn_RecordingStopped; 有冲突
mWavWriter = new WaveFileWriter(filePath,mWavIn.WaveFormat);
mWavIn.StartRecording();
}

/// <sumMary>
/// 停止录音
/// </sumMary>
public void StopRecord()
{
mWavIn?.StopRecording();
mWavIn?.Dispose();
mWavIn = null;
mWavWriter?.Close();
mWavWriter = null;
}

//这个方法调用关闭时会有冲突

private void MWavIn_RecordingStopped(object sender,StoppedEventArgs E)
{
//mWavIn?.Dispose();
//mWavIn = null;
//mWavWriter?.Close();
//mWavWriter = null;
}

private void MWavIn_DataAvailable(object sender,WaveInEventArgs E)
{
mWavWriter.Write(e.buffer,e.bytesRecorded);
int secondsRecorded = (int)R_105_11845@WavWriter.Length / mWavWriter.WaveFormat.AverageBytesPerSecond;
}
}

 

@H_450_66@2.在主界面引用  RecordController record = new RecordController();

/// <sumMary>
/// 耳机sidetone测试
/// </sumMary>
/// <param name="i"></param>
public void Sidetone(int i)
{
String[] row = getlistviewitem(i);
record.StartRecord("e:\\rec.wav");
if (messageBox.Show("正在录音,点击是播放录音","提示",messageBoxButtons.Yesno,messageBoxIcon.Information) == DialogResult.No)
{
record.StopRecord();
ErrorFlag = false;
row[6] = "FAIL";
}
else
{
record.StopRecord();
String path = "e:\\rec.wav";//.wav音频文件路径
Sy@L_874_12@.Media.soundPlayer player = new Sy@L_874_12@.Media.soundPlayer(path);
player.Play();

if (messageBox.Show("是否有录音",messageBoxIcon.Information) == DialogResult.No)
{
ErrorFlag = false;
row[6] = "FAIL";
}
else
{
ErrorFlag = true;
row[5] = "OK";
row[6] = "PASS";
}
}
listupdate(row,i);
}

完成代码后测试是能正常录音

大佬总结

以上是大佬教程为你收集整理的c#NAudio 录音功能实现全部内容,希望文章能够帮你解决c#NAudio 录音功能实现所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。