【问题标题】:NAudio AudioMeterInformation works only if "control mmsys.cpl sounds" is openNAudio AudioMeterInformation 仅在“控制 mmsys.cpl 声音”打开时才有效
【发布时间】:2017-02-08 21:15:54
【问题描述】:

我正在尝试捕获 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 工作正常,即使没有打开属性。

我该如何解决这个问题?

【问题讨论】:

    标签: c# wpf naudio


    【解决方案1】:

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

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

    现在,它正在工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-09
      • 1970-01-01
      • 2012-11-14
      • 1970-01-01
      相关资源
      最近更新 更多