示例#1
0
        public static int GetSamplesAtByte(this AudioConverter converter, AudioFormat format, int startIdx, int frameCount, Span <byte> buffer)
        {
            int sampleCount      = frameCount * format.Channels;
            var conversionBuffer = new Span <float>(new float[sampleCount]);
            int samplesGotten    = converter.GetConvertedSamplesAt(format, startIdx, frameCount, conversionBuffer);

            if (samplesGotten == 0)
            {
                return(0);
            }
            for (var i = 0; i < samplesGotten; i++)
            {
                AudioConverter.SetSampleAsFloat(i, conversionBuffer[i], buffer, format);
            }

            return(samplesGotten);
        }