private unsafe static void AudioStreamCallback(IntPtr buff, Int32 size)
{
byte[] samples = new byte[size];
Marshal.Copy(buff, samples, 0, size);
waveProvider.AddSamples(samples, 0, size);
bytes_played += size;
}
В приведенном выше коде buff
возвращается из нативной библиотеки DLL, написанной в C
.Для регистрации я напечатал количество байтов, добавленных к образцу.Основываясь на этом журнале, я получаю указанную ниже ошибку после воспроизведения около 2,4 Мб сэмплов.
Необработанное исключение: System.InvalidOperationException: полный буфер в NAudio.Wave.BufferedWaveProvider.AddSamples (Byte []), Смещение Int32, число Int32)
Нужно ли освободить некоторый буфер или обязательно очистить старые записи перед добавлением новых образцов?Я посмотрел на исходный код, но не нашел ничего, связанного с размером буфера.Я что-то упускаю.
Спасибо за вашу помощь.