private void InitInstance() { lock (mutex) { bufferEndCallback = new EventHandler <ContextEventArgs>(streaming_BufferEnd); streamBuffers = new List <AudioBuffer>(NumStreamingBuffers); byteBuffers = new List <byte[]>(NumStreamingBuffers); bufferStatus = new System.Collections.BitArray(NumStreamingBuffers, false); for (var i = 0; i < NumStreamingBuffers; i++) { byte[] byteBuff = new byte[StreamingBufferSize]; byteBuffers.Add(byteBuff); AudioBuffer audioBuff = new AudioBuffer(); audioBuff.AudioData = new SlimDX.DataStream(byteBuff, true, true); streamBuffers.Add(audioBuff); } xaudio = new XAudio2(); masteringVoice = new MasteringVoice(xaudio); } }
public void Dispose() { lock (mutex) { DisposeWave(); if (decodeThread != null) { decodeThread.Abort(); System.Threading.Monitor.Pulse(mutex); decodeThread = null; } if (streamBuffers != null) { foreach (AudioBuffer buffer in streamBuffers) { buffer.AudioData.Dispose(); buffer.Dispose(); } byteBuffers = null; streamBuffers = null; } if (masteringVoice != null) { masteringVoice.Dispose(); masteringVoice = null; } if (xaudio != null) { xaudio.Dispose(); xaudio = null; } } }
private void InitInstance() { lock (mutex) { bufferEndCallback = new EventHandler<ContextEventArgs>(streaming_BufferEnd); streamBuffers = new List<AudioBuffer>(NumStreamingBuffers); byteBuffers = new List<byte[]>(NumStreamingBuffers); bufferStatus = new System.Collections.BitArray(NumStreamingBuffers, false); for (var i = 0; i < NumStreamingBuffers; i++) { byte[] byteBuff = new byte[StreamingBufferSize]; byteBuffers.Add(byteBuff); AudioBuffer audioBuff = new AudioBuffer(); audioBuff.AudioData = new SlimDX.DataStream(byteBuff, true, true); streamBuffers.Add(audioBuff); } xaudio = new XAudio2(); masteringVoice = new MasteringVoice(xaudio); } }