1.首先新建引用类  RecordController  //From:www.uzhanbao.com

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, 0, e.BytesRecorded);
int secondsRecorded = (int)mWavWriter.Length / mWavWriter.WaveFormat.AverageBytesPerSecond;
}
}

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音频文件路径
System.Media.SoundPlayer player = new System.Media.SoundPlayer(path);
player.Play();

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

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

c#NAudio 录音功能实现相关推荐

  1. net中c#如何录制音频?推荐使用NAudio组件

    上一篇博客实现录制视频,今天这篇讲的是net中c#实现录制音频?这里推荐使用NAudio这个组件.它是相对成熟.开源的C#音频开发工具,包含录音.播放录音.格式转换.混音调整等功能.今天这篇只展示了它 ...

  2. iOS 录音功能的实现

    这两天也调了一下ios的录音,原文链接:http://www.iphoneam.com/blog/index.php?title=using-the-iphone-to-record-audio-a- ...

  3. vue上传录音_vue用到H5+的录音功能 真机模拟的时候不能实现

    vue用到H5+的录音功能 真机模拟的时候不能实现录音,报错plusready is not undefined 但是官方的demo中audio文件在真机模拟的时候是能够实现录音的. export d ...

  4. html5录音功能代码,recorder.js 基于 HTML5 实现录音功能

    recorder.js 基于 HTML5 实现录音功能2020-06-23 01:49:56 recorder.js microphone基于HTML5的录音功能,输出格式为mp3文件. 前言 完全依 ...

  5. Qt文档阅读笔记-Qt5录音功能的实现

    目录 基本概念 代码与实例 基本概念 首先是Qt5中的新特性: Qt5中关于多媒体的新特性:           1. QML API接口:           2. 能同时使用MediaPlayer ...

  6. 通话录音_iOS 14将支持通话录音功能,但有隐性使用条件

    6月9日消息,近日苹果已经正式宣布将于本月20日举行线上WWDC 2020大会,届时iOS 14将正式和大家见面.今日有外媒根据泄露的代码发现苹果或将在iOS 14中添加一项大家期待已久的新功能--支 ...

  7. h5打开麦克风权限录音_原来电脑上自带录音功能,很多人还不知道,真的太实用了...

    众所周知,我们的手机上一般都会带有录音功能,那么如果你使用的是电脑,想要在电脑上录音该怎么办呢?下面就来教你两种方法. 一.系统自带录音 1.这里就以Win10系统为例,首先按下组合键[Win+S], ...

  8. C++ 採集音频流(PCM裸流)实现录音功能

    与上一篇的"C++ 播放音频流(PCM裸流)" 点击打开链接 相相应,本篇是关于用C++实现录音功能的.相同是直接建一个win32控制台程序然后将代码拷过去改个文件名称就能够用,也 ...

  9. PhoneGap录像 以及 录音功能 简单代码实现3

    1,录音功能 navigator.device.capture.captureAudio(function(files){//成功回调函数Ext.getCmp("video_files_ma ...

最新文章

  1. LinkedList源码(基础代码)
  2. mysql 函数索引_MySQL 8.0 索引特性1-函数索引
  3. C#学习笔记:预处理指令
  4. angularAMD快速入门
  5. 雷兽的数据库CAP乱谈之(一)阐述
  6. java excel api及详细教程_针对Java Excel API及详细教程
  7. IDEA常用的搜索快捷键
  8. android桌面小工具,Android桌面小工具 清新实用的桌面小插件推荐
  9. 手把手教你在Android中使用bsdiff实现文件增量更新 (超详细)
  10. 基于STM32通过RTC唤醒低功耗模式
  11. Arch-004ArchLinux搜狗输入法安装
  12. EBS Form开发中LOV实现实例
  13. 从0-1搭建一个服务器(以前不懂事,现在只想搞钱)
  14. 以rpm为后端及以yum为前端工具的程序包管理器在Linux发行版系统centos中的使用...
  15. 7.选择结构之switch结构
  16. 功率谱和功率谱密度-MATLAB
  17. 蓝牙室内定位导航技术应用
  18. 上千家企业涌入蚂蚁开放联盟链:在区块链上抢先吃红利螃蟹
  19. PF_PACKET环形接收缓存
  20. 【简单工厂设计模式】

热门文章

  1. python修炼之pip基本命令
  2. Flink janino,跟老铁又学到了
  3. 浙大网新:子公司华通云数据与阿里巴巴达成合作
  4. Java | 二维数组的初始化
  5. ZUK Z2开不了机,指示灯长亮
  6. 安卓仿苹果音量调节_Android实现音量调节的方法
  7. 关于语义分析的简单总结
  8. ISBN号码 xdoj 88
  9. Paddle-NEAT——飞桨进化神经网络组件
  10. 简述 Linux DRM 架构