NAudio:所有混音器输入必须具有相同的WaveFormat

时间:2012-10-12 18:43:47

标签: naudio

我使用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 waveformat:IeeeFloat

myMixer waveformat:IeeeFloat

NAudio.dll中出现'System.ArgumentException'类型的第一次机会异常 NAudio.dll

中发生了未处理的“System.ArgumentException”类型异常

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

1 个答案:

答案 0 :(得分:2)

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

这一行:

myWaveProvider = new MyWaveProvider16();

应该是:

myWaveProvider = new MyWaveProvider16(8000, 1);

否则默认为44100。