Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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;
                }
            }
        }
Ejemplo n.º 3
0
        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;
                }
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }