我想将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位和剪辑。