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

  • 相关阅读:
    查看MySQL数据库版本
    PHP如何查找一列有序数组是否包含某值(二分查找)
    TP数据查询给sql给查询加一个虚拟字段值
    TP SQL统计查询语法
    PHP如何对一组数进行重新排列(冒泡算法)
    python入门及数字、字符串类型
    GitHub及Git及GitHub搭建个人网站
    Editplus的扩展程序的删除
    50个SQL语句(MySQL版) 问题十五
    50个SQL语句(MySQL版) 问题十四
  • 原文地址:https://www.cnblogs.com/tlmbem/p/12416289.html
Copyright © 2011-2022 走看看