zoukankan      html  css  js  c++  java
  • 使用winmm.dll 获取麦克风声音数据

    //录音
            /// <summary>
            /// 初始化录音环境
            /// </summary>
            /// <returns></returns>
            public static bool InitalDevice()
            {
                durLength = "";
                durLength = durLength.PadLeft(128, Convert.ToChar(" "));//11025
                ilong = APIClass.mciSendString("set media bitpersample 8", durLength, durLength.Length, 0);
                ilong = APIClass.mciSendString("set media samplespersec 11025", durLength, durLength.Length, 0);
                ilong = APIClass.mciSendString("set media channels 2", durLength, durLength.Length, 0);
                ilong = APIClass.mciSendString("set media format tag pcm", durLength, durLength.Length, 0);
                return true;
            }
    
            /// <summary>
            /// 开始录音
            /// </summary>
            /// <returns></returns>
            public static bool BeginRecord()
            {
                durLength = "";
                durLength = durLength.PadLeft(128, Convert.ToChar(" "));
                ilong = APIClass.mciSendString("close My", durLength, durLength.Length, 0);
                try
                {
                    ilong = APIClass.mciSendString("open new type waveaudio alias My", durLength, durLength.Length, 0);
                    ilong = APIClass.mciSendString("record My", durLength, durLength.Length, 0);
                }
                catch (Exception ex)
                {
                    ex.Message.ToString();
                }
                return true;
            }
    
            /// <summary>
            /// 保存录音
            /// </summary>
            /// <param name="path">保存路径</param>
            public static void SaveMusic(string path)
            {
                durLength = "";
                durLength = durLength.PadLeft(128, Convert.ToChar(" "));
                try
                {
                    ilong = APIClass.mciSendString("save My " + path, durLength, durLength.Length, 0);
                    APIClass.mciSendString("close My", durLength, durLength.Length, 0);
                }
                catch (Exception ex)
                {
                    ex.Message.ToString();
                }
            }
    
            /// <summary>
            /// 停止录音
            /// </summary>
            public void StopRecord()
            {
                durLength = "";
                durLength = durLength.PadLeft(128, Convert.ToChar(" "));
                try
                {
                    APIClass.mciSendString("stop My", durLength, durLength.Length, 0);
                }
                catch (Exception ex)
                {
                    ex.Message.ToString();
                }
            }
    
            /// <summary>
            /// 暂停录音
            /// </summary>
            public void PauseRecord()
            {
                durLength = "";
                durLength = durLength.PadLeft(128, Convert.ToChar(" "));
                try
                {
                    APIClass.mciSendString("pause My", durLength, durLength.Length, 0);
                }
                catch (Exception ex)
                {
                    ex.Message.ToString();
                }
            }
    
            /// <summary>
            /// 继续录音
            /// </summary>
            public void ResumeRecord()
            {
                durLength = "";
                durLength = durLength.PadLeft(128, Convert.ToChar(" "));
                try
                {
                    APIClass.mciSendString("resume My", durLength, durLength.Length, 0);
                }
                catch (Exception ex)
                {
                    ex.Message.ToString();
                }
            }
    
    public class APIClass
        {
            [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
            public static extern int GetShortPathName(string lpszLongPath, string shortFile, int cchBuffer);
    
            [DllImport("winmm.dll", EntryPoint = "mciSendString", CharSet = CharSet.Auto)]
            public static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback);
        }
    

      

    作  者:大師兄丶
    出  处:http://www.cnblogs.com/zhao-yi
    Git 地 址:https://github.com/ZhaoYis
    个人博客:http://www.zhaoyis.com.cn
    关于作者:主要从事基于.Net Framework平台的项目开发。如有问题或建议,请多多赐教!
    版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
    声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是作者坚持原创和持续写作的最大动力!
  • 相关阅读:
    神经网络和深度学习之——前馈神经网络
    神经网络和深度学习之感知器工作原理
    神经网络和深度学习之神经元和感知器
    基于keras的BiLstm与CRF实现命名实体标注
    基于双向BiLstm神经网络的中文分词详解及源码
    Net Core中数据库事务隔离详解——以Dapper和Mysql为例
    利用卷积神经网络(VGG19)实现火灾分类(附tensorflow代码及训练集)
    AlexNet 网络详解及Tensorflow实现源码
    ASP.NET Core MVC I/O编程模型
    Tensorflow开发环境配置及其基本概念
  • 原文地址:https://www.cnblogs.com/zhao-yi/p/6225940.html
Copyright © 2011-2022 走看看