Exemple #1
0
 public WaveInRecorder(int device, WaveFormat format, int bufferSize, int bufferCount, BufferDoneEventHandler doneProc, Action <bool> callBack)
 {
     try
     {
         m_DoneProc = doneProc;
         int error = WaveNative.waveInOpen(out m_WaveIn, device, format, m_BufferProc, 0, WaveNative.CALLBACK_FUNCTION);
         WaveInHelper.Try(error);
         AllocateBuffers(bufferSize, bufferCount);
         for (int i = 0; i < bufferCount; i++)
         {
             SelectNextBuffer();
             m_CurrentBuffer.Record();
         }
         error = WaveNative.waveInStart(m_WaveIn);
         WaveInHelper.Try(error);
         m_Thread = new Thread(new ThreadStart(ThreadProc));
         m_Thread.Start();
         if (callBack != null)
         {
             callBack(true);
         }
     }
     catch (Exception)
     {
         if (callBack != null)
         {
             callBack(false);
         }
     }
 }
Exemple #2
0
 public WaveInRecorder(int device, WaveFormat format, int bufferSize, int bufferCount, BufferDoneEventHandler doneProc)
 {
     try
     {
         m_DoneProc = doneProc;
         WaveInHelper.Try(WaveNative.waveInOpen(out m_WaveIn, device, format, m_BufferProc, 0, WaveNative.CALLBACK_FUNCTION));
         AllocateBuffers(bufferSize, bufferCount);
         for (int i = 0; i < bufferCount; i++)
         {
             SelectNextBuffer();
             m_CurrentBuffer.Record();
         }
         WaveInHelper.Try(WaveNative.waveInStart(m_WaveIn));
         m_Thread = new Thread(new ThreadStart(ThreadProc));
         m_Thread.Start();
     }
     catch (Exception ex)
     {
         LogManage.WriteLog(this.GetType(), ex);
     }
 }