zoukankan      html  css  js  c++  java
  • ActiveX录音插件

        /// <summary>
        /// 录音核心类
        /// </summary>
        [Description("录音核心类")]
        public class RecordCore
        {
            #region
    
            [DllImport("winmm.dll", EntryPoint = "mciSendString", CharSet = CharSet.Auto)]
            public static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback);
    
            /// <summary>
            /// 录音状态
            /// </summary>
            public RecordStatus RecordStatus = RecordStatus.Close;
    
            #endregion
    
            /// <summary>
            /// 开始录音
            /// </summary>
            /// <returns></returns>
            public void StartRecord()
            {
                mciSendString("close myrecord", "", 0, 0);
    
                int result = mciSendString("open new type WAVEAudio alias myrecord", "", 0, 0);
                if (result != 0)
                {
                    throw new Exception(result.ToString());
                }
    
                result = mciSendString("record myrecord", "", 0, 0);
                if (result != 0)
                {
                    throw new Exception(result.ToString());
                }
    
                this.RecordStatus = ActiveXLibrary.RecordStatus.Record;
    
                //result = mciSendString("set wave  bitpersample 8", "", 0, 0);
                //result = mciSendString("set wave  samplespersec 11025", "", 0, 0);
                // result = mciSendString("set wave  channels 2", "", 0, 0);
                //result = mciSendString("set wave  format tag pcm", "", 0, 0);
            }
    
            /// <summary>
            /// 暂停录音
            /// </summary>
            public void PauseRecord()
            {
                int result = mciSendString("pause myrecord", "", 0, 0);
                if (result != 0)
                {
                    throw new Exception(result.ToString());
                }
    
                this.RecordStatus = ActiveXLibrary.RecordStatus.Pause;
            }
    
            /// <summary>
            /// 继续录音
            /// </summary>
            public void ResumeRecord()
            {
                int result = mciSendString("resume  myrecord", "", 0, 0);
                if (result != 0)
                {
                    throw new Exception(result.ToString());
                }
    
                this.RecordStatus = ActiveXLibrary.RecordStatus.Record;
            }
    
            /// <summary>
            /// 保存录音
            /// </summary>
            /// <param name="pathFile">保存路径(不能有数字)</param>
            public void SaveRecord(string pathFile)
            {
                this.PauseRecord();
    
                int result = mciSendString(String.Format("save myrecord {0} ", pathFile), "", 0, 0);
                if (result != 0)
                {
                    throw new Exception(result.ToString());
                }
    
                this.CloseRecord();
            }
    
            /// <summary>
            /// .关闭录音
            /// </summary>
            public void CloseRecord()
            {
                int result = mciSendString("close myrecord", "", 0, 0);
                if (result != 0)
                {
                    throw new Exception(result.ToString());
                }
    
                this.RecordStatus = ActiveXLibrary.RecordStatus.Close;
            }
    
        }

    源码下载地址:ActiveX录音插件.zip

  • 相关阅读:
    多表查询+多对多 三表连查+子查询
    几个重要的关键字where+group by +having +order by + limit
    拷贝表 *** 与******
    一对一关系的补充
    几种基本的约束和外键(一对一 多对多 多对一)级联关系
    创建表的完整语法 数字类型(整型 浮点型) 字符型 时间和日期类型 集合和枚举类型
    随记Litter note
    视图 触发器 事务(重要) 存储过程 内置函数 流程控制 索引
    luogu P2774 方格取数问题
    luogu P4014 分配问题
  • 原文地址:https://www.cnblogs.com/tlmbem/p/12416289.html
Copyright © 2011-2022 走看看