我使用 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