NAudio - WaveOut 在与 WaveOffsetStream 一起使用时不会引发 PlaybackStopped 事件

NAudio - WaveOut doesn't raise PlaybackStopped event when used with WaveOffsetStream

创建 WaveOut 对象并使用 WaveOffsetStream 对其进行初始化时,播放结束时不会引发 PlaybackStopped 事件。代码:

WaveOut myWaveOut = new WaveOut();
myWaveOut.PlaybackStopped += OnPlaybackStopped;

WaveOffsetStream OffsetStream = new WaveOffsetStream(MyOtherStream);

myWaveOut.Init(OffsetStream);
myWaveOut.Play();

WaveOutOffsetStream 始终 returns 来自 Read 的请求字节数,因此它是一个永无止境的流。您必须使用不同的东西,或者检测 Position 何时超过您想要播放的点