zoukankan      html  css  js  c++  java
  • Pocket PC 录音

      1作者:ah, 2007-10-31
      9using System;
     10using System.Drawing;
     11using System.Collections;
     12using System.Windows.Forms;
     13using System.Data;
     14using OpenNETCF.Multimedia.Audio;
     15using System.IO;
     16using System.Reflection;
     17
     18namespace ppcvoicerecorder
     19{
     20    public partial class frmRecorder : Form    
     21    {          
     22        private Player player;
     23        private Recorder recorder;
     24        private Stream stream;
     25        private int timeLeft;
     26     
     27        private const int RECORD_LENGTH = 600;
     28        private const int MAX_RECORD_LENGTH = 600;//录音最大长度
     29        private  string TEMP_PATH = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);
     30        private string TEMP_FILE = SystemInfoFilePath();
     31        private DateTime STARTRECORD_TIME;//开始录音时间
     32        private DateTime ENDRECORE_TIME;//结实录音时间
     33        ConnDate conn = new ConnDate();
     34
     35        public frmRecorder()
     36        {
     37            InitializeComponent();
     38
     39            lblTime.Width = this.Width;          
     40            // 实例化录音机
     41            recorder = new Recorder();
     42            recorder.DoneRecording += new WaveFinishedHandler(recorder_DoneRecording);
     43            // 实例化播放器
     44            player = new Player();
     45            player.DonePlaying += new WaveDoneHandler(player_DonePlaying);           
     46        }

     47       
     48
     49        void recorder_DoneRecording()
     50        {
     51            mniRecord.Text = "录音";
     52            tmrRecord.Enabled = false;
     53           
     54        }

     55
     56        设置本地存储路径
     68
     69        private DialogResult _isCancel = DialogResult.No;
     70
     71        public DialogResult IsCancel
     72        {
     73            get return _isCancel; }
     74        }
           
     75
     76        void player_DonePlaying(object sender, IntPtr wParam, IntPtr lParam)
     77        {
     78           // mniPlay.Text = "播放";
     79        }

     80
     81        private void tmrRecord_Tick(object sender, EventArgs e)
     82        {
     83            timeLeft--;
     84            if (timeLeft >0)
     85            {
     86                lblTime.Text = string.Format("0:{0:00}", MAX_RECORD_LENGTH - timeLeft);
     87            }

     88        }
     
     89       
     90        private Stream PrepareTempFile()
     91        {
     92            // 检查临时目录是否存在
     93            if (!Directory.Exists(TEMP_PATH))
     94            {
     95                Directory.CreateDirectory(TEMP_PATH);
     96            }
               
     97
     98            if (File.Exists(TEMP_FILE))
     99            {
    100                File.Delete(TEMP_FILE);
    101            }

    102
    103            stream = File.OpenWrite(TEMP_FILE);
    104            return stream;
    105        }
           
    106
    107        private void Record()
    108        {
    109            try
    110            {
    111                if (mniRecord.Text == "停止/确认")
    112                {
    113                    tmrRecord.Enabled = false;                   
    114                    // 停止录音
    115                    this.ENDRECORE_TIME = DateTime.Now;
    116                    this.lblTime.Text = conn.DateDiff(this.STARTRECORD_TIME,this.ENDRECORE_TIME);
    117                    recorder.Stop();
    118                    _isCancel = DialogResult.OK;
    119                    mniRecord.Text = "录音";                  
    120                    this.Close();                   
    121                }

    122                else
    123                {
    124                    this.STARTRECORD_TIME = DateTime.Now;
    125                    stream = PrepareTempFile();                 
    126                    timeLeft = RECORD_LENGTH;
    127                    tmrRecord.Enabled = true;
    128
    129                    // 开始录音
    130                    recorder.RecordFor(stream, RECORD_LENGTH, SoundFormats.Mono8bit11kHz);
    131                    mniRecord.Text = "停止/确认";                   
    132                }

    133            }

    134            catch (Exception ex)
    135            {
    136                MessageBox.Show(ex.Message);
    137            }

    138        }
     
    139
    140        /// <summary>
    141        /// 取得录音文件路径
    142        /// </summary>
    143        /// <returns>返回路径</returns>

    144        public string GetFileInfo()
    145        {
    146            try
    147            {
    148                return this.TEMP_FILE;
    149            }

    150            catch (Exception err)
    151            {
    152                return string.Empty;
    153                MessageBox.Show(err.Message);
    154            }

    155        }
            
    156
    157        private void mniRecord_Click(object sender, EventArgs e)
    158        {
    159            this.Record();           
    160        }
          
    161
    162        private void mniMenuBack_Click(object sender, EventArgs e)
    163        {
    164            this.Close();
    165        }
          
    166                 
    167    }

    168}


    Mobile Voice Notes.pdf

  • 相关阅读:
    Lizcst Software Lab新秀品牌上线!
    HBase 数据备份
    Debian7离线升级bash漏洞—然后修复方法
    Android手势识别的发展
    【Android先进】如何使用数据文件来保存程序
    android 随着认识的去除率EditText(它配备了防抖效果)
    [Angular 2] Using Array ...spread to enforce Pipe immutability
    [Angular 2] Using Pipes to Filter Data
    [Angular 2] Controlling how Styles are Shared with View Encapsulation
    [Angular 2]ng-class and Encapsulated Component Style2
  • 原文地址:https://www.cnblogs.com/wt0731/p/953182.html
Copyright © 2011-2022 走看看