c#NAudio录⾳功能实现
c#NAudio录⾳功能实现
在⽹上找了很多类似录⾳教程效果都不好,或根本不能录⾳,代码由⽹上借鉴修改(完整实现录⾳播放功能)
NAudio
NAudio功能强⼤,且其⼊门容易。
强⼤在于:它⽀持许多⾳频操作,可实现多种API播放与录制、多种不同⾳频格式、⾳频格式转换(重采样、位深、声道等)、⾳频编码、
多通道播放、⾳频效果处理等等(详细介绍可以看Githubreadme)。
新建RecordController
⾸先新建引⽤类RecordController
publicclassRecordController
{
publicWaveInmWavIn;
publicWaveFileWritermWavWriter;
///
///开始录⾳
///
///
publicvoidStartRecord(stringfilePath)
{
mWavIn=newWaveIn();
ailable+=MWavIn_DataAvailable;
//ingStopped+=MWavIn_RecordingStopped;有冲突
mWavWriter=newWaveFileWriter(filePath,rmat);
ecording();
}
///
///停⽌录⾳
///
publicvoidStopRecord()
{
mWavIn?.StopRecording();
mWavIn?.Dispo();
mWavIn=null;
mWavWriter?.Clo();
mWavWriter=null;
}
//这个⽅法在调⽤关闭时会有冲突
privatevoidMWavIn_RecordingStopped(objectnder,StoppedEventArg)
{
//mWavIn?.Dispo();
//mWavIn=null;
//mWavWriter?.Clo();
//mWavWriter=null;
}
privatevoidMWavIn_DataAvailable(objectnder,WaveInEventArg)
{
(,0,ecorded);
intcondsRecorded=(int)/eBytesPerSecond;
}
}
使⽤
在主界⾯引⽤RecordControllerrecord=newRecordController();
///
///⽿机sidetone测试
///
///
publicvoidSidetone(inti)
{
string[]row=getlistviewitem(i);
ecord("e:");
if(("正在录⾳,点击是播放录⾳","提⽰",,ation)==)
{
cord();
ErrorFlag=fal;
row[6]="FAIL";
}el
{
cord();
stringpath="e:";
//.wav⾳频⽂件路径
layerplayer=layer(path);
();
if(("是否有录⾳","提⽰",,ation)==)
{
ErrorFlag=fal;
row[6]="FAIL";
}el
{
ErrorFlag=true;
row[5]="OK";
row[6]="PASS";
}
}
listupdate(row,i);
}
完成代码后测试是能正常录⾳
本文发布于:2023-01-03 21:35:34,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/86658.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |