feliwir / SharpAudio

Audio playback/capturing engine for C#
MIT License
173 stars 19 forks source link

Access violation error #74

Open MichaelSvejcar opened 1 year ago

MichaelSvejcar commented 1 year ago

Hello, I've been testing this library with slightly modified code which was provided as example:

var engine = AudioEngine.CreateDefault();
var buffer = engine.CreateBuffer();
var source = engine.CreateSource();

// Play a 1s long sound at 440hz
AudioFormat format;
format.BitsPerSample = 16;
format.Channels = 1;
format.SampleRate = 44100;
float freq = 440.0f;
var size = format.SampleRate;
var samples = new short[size];

for (int i = 0; i < size; i++)
{
    samples[i] = (short)(32760 * Math.Sin((2 * Math.PI * freq) / size * i));
}

buffer.BufferData(samples, format);

for (int i = 0; i < 60; i++)
{
    source.QueueBuffer(buffer);
}

source.Play();

However, after running this code and getting approximately two seconds of playback, the app crashes with code 3221225477 (0xc0000005) 'Access violation'. One time it haven't crashed, but weird noise started to come from the speakers. Do you know what may be causing this issue? Is there maybe some maximum length that the buffer is supposed to have for it to run stably? Thank you and have a nice day!