NAudio 简介:
NAudio是个相对成熟、开源的C#音频开发工具,它包含录音、播放录音、格式转换、混音调整等功能。本次介绍主要功能有音频、录音文件播放、实时音频流波形图显示等。
第一步:添加引用,在NuGet中搜索NAudio,并安装
第二步:在代码中使用,下面直接提供本人封装好的类,暴露了3个接口,一个初始化,一个开始,一个暂停,比较基础的应用
using System;
using NAudio.Wave;
public class NAudioRecordHelper
{
public enum RecordType
{
loudspeaker = 0, // 扬声器
microphone = 1 //麦克风
}
//录制的类型
RecordType t = RecordType.microphone;
//录制麦克风的声音
WaveInEvent waveIn = null; //new WaveInEvent();
//录制扬声器的声音
WasapiLoopbackCapture capture = null; //new WasapiLoopbackCapture();
//生成音频文件的对象
WaveFileWriter writer = null;
string audioFile = “”;
public NAudioRecordHelper(RecordType x, string filePath)
{
t = x;
audioFile = filePath;
}
/// <summary>
/// 开始录制
/// </summary>
public void StartRecordAudio()
{
try
{
if (audioFile == “”)
{
System.Windows.Forms.MessageBox.Show(“请设置录制文件的路径!”);
return;
}
if (t == RecordType.microphone)
{
waveIn = new WaveInEvent();
writer = new WaveFileWriter(audioFile, waveIn.WaveFormat);
//开始录音,写数据
waveIn.DataAvailable += (s, a) =>
{
writer.Write(a.Buffer, 0, a.BytesRecorded);
};
//结束录音
waveIn.RecordingStopped += (s, a) =>
{
writer.Dispose();
writer = null;
waveIn.Dispose();
};
waveIn.StartRecording();
}
else
{
capture = new WasapiLoopbackCapture();
writer = new WaveFileWriter(audioFile, capture.WaveFormat);
capture.DataAvailable += (s, a) =>
{
writer.Write(a.Buffer, 0, a.BytesRecorded);
};
//结束录音
capture.RecordingStopped += (s, a) =>
{
writer.Dispose();
writer = null;
capture.Dispose();
};
capture.StartRecording();
}
}
catch (Exception ex)
{
}
}
//结束录制
public void StopRecordAudio()
{
if (t == RecordType.microphone)
waveIn.StopRecording();
else
capture.StopRecording();
}
要想了结更多,可以到Gitbub,提供了比较详细的介绍和实例:
https://github.com/naudio/NAudio
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/51845.html