Hello guys I am using NAudio and I have this class :
Sometime when I use the Play void I get this error:Code:public class Music { private string fileLocation; private IWavePlayer waveout; private WaveStream outputStream; WaveOutEvent audio; public Drum(string file) { this.fileLocation = file; this.waveout = new WaveOut(); audio = new WaveOutEvent(); } static WaveStream CreateInputStream(string name) { WaveChannel32 inputStream; if (name.EndsWith(".wav")) { WaveStream readerStream = new WaveFileReader(name); if (readerStream.WaveFormat.Encoding != WaveFormatEncoding.Pcm) { readerStream = WaveFormatConversionStream.CreatePcmStream(readerStream); readerStream = new BlockAlignReductionStream(readerStream); } if (readerStream.WaveFormat.BitsPerSample != 16) { var format = new WaveFormat(readerStream.WaveFormat.SampleRate, 16, readerStream.WaveFormat.Channels); readerStream = new WaveFormatConversionStream(format, readerStream); } inputStream = new WaveChannel32(readerStream); } else { throw new InvalidOperationException("Invalid extension"); } return inputStream; } public void Play() { this.outputStream = CreateInputStream(this.fileLocation); audio.Init(outputStream); audio.Play(); } }
AlreadyAllocated calling waveOutOpen. any idea how to resolve it ?
The other thing I notice is that each time I want to play something I need to open the file read the whole stream and save it in WaveStream, but this way I am wasting the resource and the application memory, any idea how to read it once and then just to use it.


Reply With Quote