Reputation: 1025
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
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