zoukankan      html  css  js  c++  java
  • 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();

            }

  • 相关阅读:
    hdu 4162 Shape Number 最小表示法
    codeforces 416B. Appleman and Tree 树形dp
    codeforces 167B . Wizards and Huge Prize 概率dp
    codeforces 617E. XOR and Favorite Number 莫队
    angularJs问题:获取按钮 token < 80 8888 localhost:63342 统一字母大小写
    移动端页面布局需要注意的一些问题
    jqm(jquery mobile)做页面中出现诡异的&nbsp;
    页面中出现诡异的双引号""
    js、jq不能正常执行
    hdu 1874 畅通工程(spfa 邻接矩阵 邻接表)
  • 原文地址:https://www.cnblogs.com/bruce1992/p/14681814.html
Copyright © 2011-2022 走看看