C# 如何播放ISampleProvider

C# 如何播放ISampleProvider,c#,audio,naudio,C#,Audio,Naudio,我想将ISampleProvider转换为WaveStream,这样我就可以播放它了。我该怎么做 ISampleProvider mySamples = new mySampleProvider(); IWavePlayer mySpeaker = new WaveOut(); //Convert ISampleProvider to WaveStream Here mySpeaker.Init(mySamples); mySpeaker.Play(); 其中mySampleProvide

我想将
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

此外,您不需要将
波流
传递到
Init
——只需要
IWaveProvider


要将自己从
ISampleProvider
转换为
IWaveProvider
请使用
SampleToWaveProvider
SampleToWaveProvider16
,它也可以同时转换为16位和剪辑。

我正在使用最新的NAudio。我已经能够使用类似于上述代码播放ISampleProvider,问题出在我的ISampleProvider上,而不是“IWaveProvider.Init()”方法。对于所有未来的读者来说,“最新的NAudio”是指2013年10月29日发布的1.7版。