Ejemplo n.º 1
0
        public WaveMicrophone(int deviceID, int channels, int sampleRate, int bitsPerSample, double latency)
            : base(deviceID, channels, sampleRate, bitsPerSample, latency)
        {
            fAudioEvents = new BlockingBoundedQueue<AudioEvent>(SampleCount);

            Open();

            // Preload buffers so we are ready to start recording
            AllocateBuffers(DeviceHandle);
        }
Ejemplo n.º 2
0
        void AllocateBuffers(int bufferSize, int bufferCount)
        {
            fSamples = new Dictionary<IntPtr, MediaSample>();
            fAvailableBuffers = new BlockingBoundedQueue<WAVEHDR>(bufferCount);

            for (int i = 0; i < bufferCount; i++)
            {
                MediaSample aSample = new MediaSample(bufferSize);

                fSamples.Add(aSample.GetHeaderPointer(), aSample);
                fAvailableBuffers.Enqueue(aSample.GetHeader());
            }
        }