如何玩ISampleProvider

时间:2014-04-04 17:46:44

标签: c# audio naudio

我想将ISampleProvider转换为WaveStream,以便我可以播放它。我该怎么做?

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

//Convert ISampleProvider to WaveStream Here

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

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

1 个答案:

答案 0 :(得分:1)

最新的NAudio在IWavePlayer.Init上有一个扩展方法,所以你的代码应该编译。您使用的是哪种版本的NAudio?

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

要将自己从ISampleProvider转换为IWaveProvider,请使用SampleToWaveProviderSampleToWaveProvider16同时转换为16位和剪辑。