2017-02-08 14 views
0

Я пытаюсь захватить звук MIC (DataFlow.Capture), но AudioMeterInformation.PeakValues ​​работает только в том случае, если звуковые свойства открыты (контроль mmsys.cpl звучит)NAudio AudioMeterИнформация работает только в том случае, если «управление звуками mmsys.cpl» открыта

Рабочий пример

Working

Но когда я закрыть звуковые свойства ..

Not working

Мой код

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); 
     } 

    } 

Я привык (-100) на результат, потому что мой прогресс бар инвертируется (черный цвет, на самом деле прогресс)

DataFlow.Render работает отлично, даже без свойств открытый.

Как это исправить?

ответ

1

Я нашел решение. Мне пришлось поместить WaveInEvent на свой конструктор, чтобы включить устройство.

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

Теперь он работает.

 Смежные вопросы

  • Нет связанных вопросов^_^