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 Mb のサンプルを再生した後、以下のエラーが表示されます。
未処理の例外: System.InvalidOperationException: NAudio.Wave.BufferedWaveProvider.AddSamples (Byte[] バッファー、Int32 オフセット、Int32 カウント) でバッファーがいっぱいです
新しいサンプルを追加する前に、バッファを解放するか、古いエントリを確実にフラッシュする必要がありますか? ソースコードを見ましたが、バッファサイズに関連するものは見つかりませんでした。私は何かが欠けていますか?
ご協力いただきありがとうございます。