NAudio AudioMeterInformation 仅在 "control mmsys.cpl sounds" 打开时有效

NAudio AudioMeterInformation works only if "control mmsys.cpl sounds" is open

我正在尝试捕捉 MIC (DataFlow.Capture) 的声音,但 AudioMeterInformation.PeakValues 仅在声音属性打开时有效(控制 mmsys.cpl 声音)

工作示例

但是当我关闭声音属性时..

我的代码

    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 工作正常,即使没有打开属性。

我该如何解决这个问题?

我找到了解决方案。我必须将 WaveInEvent 放在我的构造函数上才能启用该设备。

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

现在,它正在工作。