中易网

c#录音功能怎么实现

答案:1  悬赏:40  
解决时间 2021-03-30 00:23
c#录音功能怎么实现
最佳答案
class RecordingAudio
    {
        static int sum = 0;
        static Timer timer;

        /// 
        /// 获取当前是否是正在录制状态
        /// 

        public static bool IsRecordingAudio { get; private set; }


        [DllImport("winmm.dll", EntryPoint = "mciSendString", CharSet = CharSet.Auto)]
        public static extern int mciSendString(
         string lpstrCommand,
         string lpstrReturnString,
         int uReturnLength,
         int hwndCallback
        );

        /// 
        /// 开始录制
        /// 

        public static void Start()
        {
            mciSendString("set wave bitpersample 16", "", 0, 0);
            mciSendString("set wave samplespersec 22050", "", 0, 0);
            mciSendString("set wave channels 1", "", 0, 0);
            mciSendString("set wave format tag pcm", "", 0, 0);
            mciSendString("open new type WAVEAudio alias movie", "", 0, 0);
            mciSendString("record movie", "", 0, 0);

            timer = new Timer(200);
            timer.Elapsed += timer_Tick;
            sum = 0;
            timer.Enabled = true;

            IsRecordingAudio = true;
        }

        private static void timer_Tick(object sender, ElapsedEventArgs e)
        {
            sum++;
        }

        /// 
        /// 停止录制,返回录制时间(进1原则)
        /// 

        /// 
        public static int Stop()
        {
            FileUtils.CheckAndCreateFolder();

            mciSendString("stop movie", "", 0, 0);
            mciSendString("save movie " + "resource/" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".wav", "", 0, 0);
            mciSendString("close movie", "", 0, 0);

            IsRecordingAudio = false;
            timer.Enabled = false;
            timer.Dispose();
            int s = sum * 200;
            return s % 1000 == 0 ? s / 1000 : s / 1000 + 1;///进1原则
        }
    }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
什么是瘢痕体质?有什么危害?有什么表现?可
远程教育和函授的区别对比哪个好?
星美世纪影城(朔州店)地址好找么,我有些事
我发现五菱宏光1.2 卖2手车的人很多为什么?是
什么牌子的冰箱最好?
西安市高新区锦业路怎么走啊
太阳能发电,太阳能发电加盟,,光伏加盟,国
7月23足球足协杯的票哪里能买到
广东省佛山市三水区乐平新市场邮编是什么?
今生宝贝服装店加盟费多少?
南昌比较好的钢管舞培训,听说灵舞飞扬那里教
一般肥牛火锅店卡座的几案及沙发的尺寸,还有
泾县怎么去月亮湾
老公属虎的快过生日了,我想请一个虚空藏菩萨
广州海鲜火锅自助餐厅铭门盛宴,多少钱一位?
推荐资讯
聊城市古城镇程庄村距离河北省馆陶县城有多远
穿上汉服的徐娇美炸天了,为什么却招来那么多
那个布艺(家居)品牌最有前景?
加盟冰淇淋店的设备去哪买?需要买什么?
哪本小说的主角叫张宇
南昌松木家具有限公司有哪些品牌?在哪?
江门联通DNS多少
博士伦清朗半年抛 国产和进口的有什么区别吗
因为不给抚养费像法院申请强制执行 可是法官
和荒凉公寓一对的情侣网名
2200扣除百分之三十的工资还有多少怎么算
在不知情有违约金的网页合同上填写了真实个人
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?