KillaKem
KillaKem

Reputation: 1025

How to play ISampleProvider

I want to convert an ISampleProvider to an WaveStream so I can be able to play it.How do I do this?

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

//Convert ISampleProvider to WaveStream Here

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

Where mySampleProvider is a class that inherits from ISampleProvider but does not have WaveStream as a base class.

Upvotes: 1

Views: 3467

Answers (1)

Mark Heath
Mark Heath

Reputation: 49482

The latest NAudio has an extension method on IWavePlayer.Init so your code should compile. What version of NAudio are you using?

Also, you don't need to pass a WaveStream to Init - all that is needed is an IWaveProvider.

To convert yourself from ISampleProvider to IWaveProvider use SampleToWaveProvider or SampleToWaveProvider16 which also converts to 16 bit and clips at the same time.

Upvotes: 2

Related Questions