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
是从一个用C
. 对于日志记录,我打印了添加到样本的字节数。根据这个日志,在播放大约 2.4 Mb 样本后,我收到了下面提到的错误。
未处理的异常:System.InvalidOperationException:NAudio.Wave.BufferedWaveProvider.AddSamples(字节 [] 缓冲区,Int32 偏移量,Int32 计数)处的缓冲区已满
在添加新样本之前,我是否需要释放一些缓冲区或确保刷新旧条目?我查看了源代码,但没有找到与缓冲区大小相关的任何内容。我是不是错过了什么。
谢谢你的帮助。