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); }
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); }