我想将ISampleProvider
转换为WaveStream
,以便我可以播放它。我该怎么做?
ISampleProvider mySamples = new mySampleProvider();
IWavePlayer mySpeaker = new WaveOut();
//Convert ISampleProvider to WaveStream Here
mySpeaker.Init(mySamples);
mySpeaker.Play();
其中mySampleProvider是一个继承自ISampleProvider
但没有WaveStream
作为基类的类。
答案 0 :(得分:1)
最新的NAudio在IWavePlayer.Init
上有一个扩展方法,所以你的代码应该编译。您使用的是哪种版本的NAudio?
此外,您不需要将WaveStream
传递给Init
- 所需的只是IWaveProvider
。
要将自己从ISampleProvider
转换为IWaveProvider
,请使用SampleToWaveProvider
或SampleToWaveProvider16
同时转换为16位和剪辑。