• c# NAudio 录音功能实现


    1.首先新建引用类  RecordController

    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;

            }

        }

    简单的调用代码。

        RecordController record = new RecordController();

           

       private void button1_Click(object sender, EventArgs e)

            {

                record.StartRecord("e:\rec.wav");

            }

            private void button2_Click(object sender, EventArgs e)

            {

                record.StopRecord();

            }

  • 相关阅读:
    Web 前端开发中一些兼容性问题及其解决办法 (持续更)
    沈逸的IT专栏---shenyisyn
    程序员该做的事
    职场需要切忌的几点——《程序员,你伤不起》
    百度天气API接口
    C#简单音乐播放器ListBox歌单列表
    CentOS7 安装java(jre 1.8)
    CentOS7 系统安装与设置
    这个可以有,记录下
    在centos 7中让网卡自启动
  • 原文地址:https://www.cnblogs.com/bruce1992/p/14681814.html
Copyright © 2020-2023  润新知