我想将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
,请使用SampleToWaveProvider
或SampleToWaveProvider16
,它们也可以同时转换为16位和片段。