2017-02-08 1 views
0

MIC(DataFlow.Capture)のサウンドをキャプチャしようとしていますが、AudioMeterInformation.PeakValuesはサウンドプロパティが開いている場合にのみ機能します(control mmsys.cpl sounds )NAudio AudioMeterInformationは、「control mmsys.cpl sounds」が開いている場合にのみ有効です

の作業例

Working

しかし、私は音の特性を閉じる。..

Not working

私のプログレスバーが反転しているので、私は結果に(-100)を使用しています

private void calculateChannels(Object source, ElapsedEventArgs e) 
    { 
     dev = devEnum.GetDefaultAudioEndpoint(DataFlow.Capture, Role.Multimedia); 

     try 
     { 
      double currentLeftChannel = 100 - (dev.AudioMeterInformation.PeakValues[0] * 100); 
      double currentRightChannel = 100 - (dev.AudioMeterInformation.PeakValues[1] * 100); 

      // this function just "smooth" the progress bar 
      this.leftChannel = round(this.leftChannel, currentLeftChannel); 
      this.rightChannel = round(this.rightChannel, currentRightChannel); 

     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex); 
     } 

    } 

私のコードは

DataFlow.Renderでも性質なしで、正常に動作している(黒の色は実際に進行しています)開いた。

どうすればこの問題を解決できますか?

答えて

1

解決策が見つかりました。 WaveInEventをコンストラクタに配置してデバイスを有効にする必要がありました。

waveInStream = new WaveInEvent(); 
waveInStream.WaveFormat = new WaveFormat(44100, 1); 
waveInStream.StartRecording(); 

現在、動作しています。

関連する問題