2016-04-07 22 views
0

システムオーディオを録音しようとしています。Naudio BadDeviceId C言語でwaveInOpenエラーが発生しました

なぜこのコードが例外を返すのですか?エラーメッセージはBadDeviceIdです。waveInOpenを呼び出しています...

コードに問題はありますか?あるいはコードから何かを作るべきですか?私は(録音デバイスから)コンピュータのマイクデバイスを有効にしましたが、マイクが接続されていません。システムオーディオを録音したいだけです。解決

enter image description here

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using NAudio; 
using NAudio.Wave; 


namespace SeleniumDeneme.Classes 
{ 
    class RecorderForVideo 
    { 

     public WaveIn waveSource = null; 
     public WaveFileWriter waveFile = null; 


     public RecorderForVideo() { } 

     public void CreateObjectsForRecord() 
     { 
      waveSource = new WaveIn(); 
      waveSource.WaveFormat = new WaveFormat(44100, 1); 
      waveSource.DataAvailable += new EventHandler<WaveInEventArgs>(waveSource_DataAvailable); 
      waveSource.RecordingStopped += new EventHandler<StoppedEventArgs>(waveSource_RecordingStopped); 

      waveFile = new WaveFileWriter(@"C:\Users\BerkayS\Desktop\Test0001.wav", waveSource.WaveFormat); 


      waveSource.StartRecording(); 


     } 

     void waveSource_DataAvailable(object sender, WaveInEventArgs e) 
     { 
      if (waveFile != null) 
      { 
       waveFile.Write(e.Buffer, 0, e.BytesRecorded); 
       waveFile.Flush(); 
      } 
     } 

     void waveSource_RecordingStopped(object sender, StoppedEventArgs e) 
     { 
      if (waveSource != null) 
      { 
       waveSource.Dispose(); 
       waveSource = null; 
      } 

      if (waveFile != null) 
      { 
       waveFile.Dispose(); 
       waveFile = null; 
      } 


     } 



    } 
} 

答えて

0

マイクをコンピュータに接続して問題が解決しました。したがってコードは完全に機能します。

関連する問題