【问题标题】:NAudio: All mixer inputs must have the same WaveFormatNAudio:所有混音器输入必须具有相同的 WaveFormat
【发布时间】:2012-10-12 18:43:46
【问题描述】:

我使用 Pcm16BitToSampleProvider 将 WaveProvider16 转换为 SampleProvider。然后我将它添加到 MixingSampleProvider。日志确实表明两者都是 IeeeFloat。但是程序在 AddMixerInput 行停止并且错误是所有混音器输入必须具有相同的 WaveFormat。

有没有想过我错过了什么?

    myWaveProvider = new MyWaveProvider16();
    mySampleProvider = new Pcm16BitToSampleProvider(myWaveProvider);
    mixerBusWaveFormat = WaveFormat.CreateIeeeFloatWaveFormat(8000, 1);
    myMixer = new MixingSampleProvider(mixerBusWaveFormat);
    myMixerSampleSource = new MixerSampleSource();

    Debug.WriteLine("mySampleProvider waveformat:  " + mySampleProvider.WaveFormat.ToString());
    Debug.WriteLine("myMixer waveformat:  " + myMixer.WaveFormat.ToString());
    myMixer.AddMixerInput(mySampleProvider);

输出:

mySampleProvider 波形格式:IeeeFloat

myMixer 波形在:IeeeFloat

在 NAudio.dll 中出现“System.ArgumentException”类型的第一次机会异常 NAudio.dll 中发生了“System.ArgumentException”类型的未处理异常

附加信息:所有混音器输入必须具有相同的 WaveFormat

【问题讨论】:

    标签: naudio


    【解决方案1】:

    用户错误:采样率不匹配。

    这一行:

    myWaveProvider = new MyWaveProvider16();
    

    应该是:

    myWaveProvider = new MyWaveProvider16(8000, 1);
    

    否则默认为 44100。

    【讨论】:

      猜你喜欢
      • 2016-12-15
      • 2013-11-03
      • 1970-01-01
      • 1970-01-01
      • 2019-03-22
      • 2019-09-22
      • 2018-06-12
      • 2018-05-18
      • 2018-06-23
      相关资源
      最近更新 更多