我想将ISampleProvider转换为WaveStream,以便能够播放它。该怎么办?

ISampleProvider mySamples = new mySampleProvider();
IWavePlayer mySpeaker = new WaveOut();

//Convert ISampleProvider to WaveStream Here

mySpeaker.Init(mySamples);
mySpeaker.Play();

其中mySampleProvider是从ISampleProvider继承但没有WaveStream作为基类的类。

最佳答案

最新的NAudio在IWavePlayer.Init上具有扩展方法,因此您的代码应进行编译。您正在使用哪个版本的NAudio?

另外,您不需要将WaveStream传递给Init-所需的只是IWaveProvider

要将自己从ISampleProvider转换为IWaveProvider,请使用SampleToWaveProviderSampleToWaveProvider16,它们也可以同时转换为16位和片段。

07-28 13:02