前言:本文章使用.NET 6环境,创建一个控制台程序,并通过控制按键R、S、P按键来实现开始录音、停止录音、暂停或继续录音的功能。
以下正文:
1、新建一个项目,例如控制台项目。然后引用NAudio包:
2、直接上代码:
static void Main(string[] args)
{
using (var waveIn = new WaveInEvent())
{
using (WaveFileWriter writer = new WaveFileWriter($"{DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")}.wav", waveIn.WaveFormat))
{
waveIn.DataAvailable += (sender, e) =>
{
writer.Write(e.Buffer, 0, e.BytesRecorded);
};
Console.WriteLine("Press 'R' to start recording, 'P' to pause/resume, and 'S' to stop.");
bool isRecording = false;
while (true)
{
var key = Console.ReadKey(true).Key;
switch (key)
{
case ConsoleKey.R:
if (!isRecording)
{
waveIn.StartRecording();
isRecording = true;
Console.WriteLine("Recording started...");
}
break;
case ConsoleKey.P:
if (isRecording)
{
waveIn.StopRecording();
isRecording = false;
Console.WriteLine("Recording paused...");
}
else
{
waveIn.StartRecording();
isRecording = true;
Console.WriteLine("Recording resumed...");
}
break;
case ConsoleKey.S:
if (isRecording)
{
waveIn.StopRecording();
}
Console.WriteLine("Recording stopped.");
return; // Exit the loop and the program
}
}
}
}
}
3、代码解说:
4、运行效果:
启动:
按R开始录音,按P暂停和恢复,按S停止:
当前默认存储于bin目录下,看下生成的录音文件:
播放的时候,就可以听见自己的录音内容了~
注意,以上内容只是简单例子,如需更加丰富的功能,可以自己定制。如该文章对您有帮助,也欢迎大佬们一键三连,或者关注本公众号
本文分享自 Dotnet Dancer 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!