Example #1
0
        void ProcessAudio(ProcessBuffer processingChunk)
        {
            if (_playbackState != PlaybackState.Playing)
            {
                return;
            }
            int bufferCount = processingChunk.AudioOut.Length;

            if (bufferCount == 0)
            {
                return;
            }
            int bufferSize  = processingChunk.Frames;
            int floatsCount = bufferCount * bufferSize;
            int bytesCount  = floatsCount * sizeof(float);

            byte[] fromWave = new byte[bytesCount];

            _waveStream.Read(fromWave, 0, bytesCount);

            float[] interlacedSamples = new float[floatsCount];
            Buffer.BlockCopy(fromWave, 0, interlacedSamples, 0, bytesCount);
            for (int i = 0; i < floatsCount; i++)
            {
                interlacedSamples [i] = interlacedSamples [i] * _volume;
            }
            BufferOperations.DeinterlaceAudio(interlacedSamples, processingChunk.AudioOut, bufferSize, bufferCount);
        }
Example #2
0
        void ProcessAudio(ProcessBuffer processingChunk)
        {
            if (_playbackState != PlaybackState.Playing)
            {
                return;
            }
            int bufferCount = processingChunk.AudioOut.Length;

            if (bufferCount == 0)
            {
                return;
            }
            int bufferSize  = processingChunk.Frames;
            int floatsCount = bufferCount * bufferSize;

            float[] interlacedSamples = new float[floatsCount];

            _sampleSource.Read(interlacedSamples, 0, floatsCount);

            for (int i = 0; i < floatsCount; i++)
            {
                interlacedSamples [i] = interlacedSamples [i] * _volume;
            }
            BufferOperations.DeinterlaceAudio(interlacedSamples, processingChunk.AudioOut, bufferSize, bufferCount);
        }