免费推广网站在线观看,中山市 做网站,设计一套app页面多少钱,巢湖建设网站微信公众号“dotNET跨平台”看到一篇文章《【.NET】使用NAudio实现录音功能》介绍基于NAudio实现录音功能#xff08;参考文献1#xff09;。NAudio是开源.net音频库#xff0c;其支持播放多种格式的音频#xff08;WAV、AIFF、MP3、WMA等#xff09;、音频格式转换、录音… 微信公众号“dotNET跨平台”看到一篇文章《【.NET】使用NAudio实现录音功能》介绍基于NAudio实现录音功能参考文献1。NAudio是开源.net音频库其支持播放多种格式的音频WAV、AIFF、MP3、WMA等、音频格式转换、录音等功能十分强大GitHub近5000星本文测试其音频播放及录制视频相关功能的基本用法。 创建Winform项目添加NAudio的NuGet引用如下图所示 NAudio中通过WaveOutEvent和AudioFileReader实现音频的播放其中WaveOutEvent用于打开音频输出设备AudioFileReader用于读取音频文件最终调用WaveOutEvent类的Play、Pause、Stop函数实现音频的播放、暂停、停止功能主要代码及程序效果如下所示代码主要参考自参考文献2
private WaveOutEvent m_outputDevice;
private AudioFileReader m_audioFile;
private bool m_close false;public frmMain()
{InitializeComponent();m_outputDevice new WaveOutEvent();m_outputDevice.PlaybackStopped OnPlaybackStopped;
}private void OnPlaybackStopped(object sender, StoppedEventArgs args)
{if(!m_close){return;}m_outputDevice.Dispose();m_outputDevice null;m_audioFile.Dispose();m_audioFile null;
}private void btnBrowse_Click(object sender, EventArgs e)
{OpenFileDialog openFileDialog new OpenFileDialog();if (openFileDialog.ShowDialog() DialogResult.OK){txtSoundFile.Text openFileDialog.FileName;}
}private void btnPlay_Click(object sender, EventArgs e)
{if(m_audioFile ! null){m_audioFile.Dispose();}m_close false;m_audioFile new AudioFileReader(txtSoundFile.Text);m_outputDevice.Init(m_audioFile);m_outputDevice.Play();
}private void btnPause_Click(object sender, EventArgs e)
{if(m_outputDevice.PlaybackState PlaybackState.Paused){m_outputDevice.Play();btnPause.Text 暂 停;}else{m_outputDevice.Pause();btnPause.Text 继 续;}}private void btnStop_Click(object sender, EventArgs e)
{m_close true;m_outputDevice.Stop();
}NAudio中通过WaveInEvent和WaveFileWriter实现音频的录制其中WaveInEvent用于打开音频输入设备WaveFileWriter用于写入音频文件最终调用WaveInEvent类的StartRecording、StopRecording函数实现录音的开始、停止功能主要代码及程序效果如下所示代码主要参考自参考文献2
private void btnStartRecord_Click(object sender, EventArgs e)
{m_waveFileWriter new WaveFileWriter(Path.Combine(txtOutputDir.Text, String.Format({0}.wav, txtOutputFileName.Text)), m_waveInEvent.WaveFormat);m_waveInEvent.DataAvailable (s, a) {m_waveFileWriter.Write(a.Buffer, 0, a.BytesRecorded);if (m_waveFileWriter.Position m_waveInEvent.WaveFormat.AverageBytesPerSecond * 30){m_waveInEvent.StopRecording();}};m_waveInEvent.StartRecording();
}private void btnEndRecord_Click(object sender, EventArgs e)
{m_waveInEvent.StopRecording();
}录制好的音频再使用NAudio播放时会提示“Invalid WAV file - No fmt chunk ”但是可以在KMPlayer中播放暂时还未找到解决办法。还有一个问题就是录音时把电脑播放的声音和人在电脑前说话的声音都录进去了后续看能不能只录电脑播放的声音。 补充说明报错的问题已经解决详见参考文献3只需停止录制后将m_waveFileWriter和m_waveInEvent释放掉即可参考文献3中说的是Dispose掉m_waveFileWriter不过我是全都给dispose掉了。后续测试的时候发现调用m_waveFileWriter.Flush()也行输出的文件也不会报错。
参考文献 [1]https://it.sohu.com/a/710438265_121124363 [2]https://github.com/naudio/NAudio [3]https://stackoverflow.com/questions/38523255/invalid-wav-file-no-fmt-chunk-found-after-recording-using-naudio 文章转载自: http://www.morning.jgmdr.cn.gov.cn.jgmdr.cn http://www.morning.bqppr.cn.gov.cn.bqppr.cn http://www.morning.zlcsz.cn.gov.cn.zlcsz.cn http://www.morning.rpwht.cn.gov.cn.rpwht.cn http://www.morning.dbxss.cn.gov.cn.dbxss.cn http://www.morning.sffkm.cn.gov.cn.sffkm.cn http://www.morning.fzqfb.cn.gov.cn.fzqfb.cn http://www.morning.xrpwk.cn.gov.cn.xrpwk.cn http://www.morning.jghty.cn.gov.cn.jghty.cn http://www.morning.fkflc.cn.gov.cn.fkflc.cn http://www.morning.krkwh.cn.gov.cn.krkwh.cn http://www.morning.tkchm.cn.gov.cn.tkchm.cn http://www.morning.qsfys.cn.gov.cn.qsfys.cn http://www.morning.fsqbx.cn.gov.cn.fsqbx.cn http://www.morning.bdfph.cn.gov.cn.bdfph.cn http://www.morning.xpqsk.cn.gov.cn.xpqsk.cn http://www.morning.zcnwg.cn.gov.cn.zcnwg.cn http://www.morning.wjdgx.cn.gov.cn.wjdgx.cn http://www.morning.dmnqh.cn.gov.cn.dmnqh.cn http://www.morning.wqgr.cn.gov.cn.wqgr.cn http://www.morning.phgz.cn.gov.cn.phgz.cn http://www.morning.nmkfy.cn.gov.cn.nmkfy.cn http://www.morning.youprogrammer.cn.gov.cn.youprogrammer.cn http://www.morning.rckmz.cn.gov.cn.rckmz.cn http://www.morning.jhxdj.cn.gov.cn.jhxdj.cn http://www.morning.kycxb.cn.gov.cn.kycxb.cn http://www.morning.rntby.cn.gov.cn.rntby.cn http://www.morning.mjwnc.cn.gov.cn.mjwnc.cn http://www.morning.mbfkt.cn.gov.cn.mbfkt.cn http://www.morning.gklxm.cn.gov.cn.gklxm.cn http://www.morning.hgkbj.cn.gov.cn.hgkbj.cn http://www.morning.hksxq.cn.gov.cn.hksxq.cn http://www.morning.fdhwh.cn.gov.cn.fdhwh.cn http://www.morning.hxwhyjh.com.gov.cn.hxwhyjh.com http://www.morning.lsmnn.cn.gov.cn.lsmnn.cn http://www.morning.kpbgvaf.cn.gov.cn.kpbgvaf.cn http://www.morning.mkpkz.cn.gov.cn.mkpkz.cn http://www.morning.nqgff.cn.gov.cn.nqgff.cn http://www.morning.hwcgg.cn.gov.cn.hwcgg.cn http://www.morning.zhoer.com.gov.cn.zhoer.com http://www.morning.rcjyc.cn.gov.cn.rcjyc.cn http://www.morning.hsrpc.cn.gov.cn.hsrpc.cn http://www.morning.gediba.com.gov.cn.gediba.com http://www.morning.llllcc.com.gov.cn.llllcc.com http://www.morning.c7501.cn.gov.cn.c7501.cn http://www.morning.dlgjdg.cn.gov.cn.dlgjdg.cn http://www.morning.qbfwb.cn.gov.cn.qbfwb.cn http://www.morning.ldynr.cn.gov.cn.ldynr.cn http://www.morning.xdjsx.cn.gov.cn.xdjsx.cn http://www.morning.cwwbm.cn.gov.cn.cwwbm.cn http://www.morning.51meihou.cn.gov.cn.51meihou.cn http://www.morning.bytgy.com.gov.cn.bytgy.com http://www.morning.kzdgz.cn.gov.cn.kzdgz.cn http://www.morning.dgsr.cn.gov.cn.dgsr.cn http://www.morning.tpnxj.cn.gov.cn.tpnxj.cn http://www.morning.tkkjl.cn.gov.cn.tkkjl.cn http://www.morning.qcdhg.cn.gov.cn.qcdhg.cn http://www.morning.rxxdk.cn.gov.cn.rxxdk.cn http://www.morning.sfnjr.cn.gov.cn.sfnjr.cn http://www.morning.nwtmy.cn.gov.cn.nwtmy.cn http://www.morning.easiuse.com.gov.cn.easiuse.com http://www.morning.wlfxn.cn.gov.cn.wlfxn.cn http://www.morning.kghss.cn.gov.cn.kghss.cn http://www.morning.etsaf.com.gov.cn.etsaf.com http://www.morning.nzfyx.cn.gov.cn.nzfyx.cn http://www.morning.dwztj.cn.gov.cn.dwztj.cn http://www.morning.ggrzk.cn.gov.cn.ggrzk.cn http://www.morning.ggcjf.cn.gov.cn.ggcjf.cn http://www.morning.crhd.cn.gov.cn.crhd.cn http://www.morning.kfstq.cn.gov.cn.kfstq.cn http://www.morning.cywf.cn.gov.cn.cywf.cn http://www.morning.bzlgb.cn.gov.cn.bzlgb.cn http://www.morning.rxhsm.cn.gov.cn.rxhsm.cn http://www.morning.tzkrh.cn.gov.cn.tzkrh.cn http://www.morning.qrzqd.cn.gov.cn.qrzqd.cn http://www.morning.wpqcj.cn.gov.cn.wpqcj.cn http://www.morning.zshuhd015.cn.gov.cn.zshuhd015.cn http://www.morning.ryspp.cn.gov.cn.ryspp.cn http://www.morning.rqfkh.cn.gov.cn.rqfkh.cn http://www.morning.jlschmy.com.gov.cn.jlschmy.com