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

Posted

技术标签:

【中文标题】NAudio - WaveOut 与 WaveOffsetStream 一起使用时不会引发 PlaybackStopped 事件【英文标题】:NAudio - WaveOut doesn't raise PlaybackStopped event when used with WaveOffsetStream 【发布时间】:2016-04-01 19:10:37 【问题描述】:

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

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

WaveOffsetStream OffsetStream = new WaveOffsetStream(MyOtherStream);

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

【问题讨论】:

【参考方案1】:

WaveOutOffsetStream 总是从Read 返回请求的字节数,因此它是一个永无止境的流。你必须使用不同的东西,或者检测 Position 何时超过你想要玩的点

【讨论】:

以上是关于NAudio - WaveOut 与 WaveOffsetStream 一起使用时不会引发 PlaybackStopped 事件的主要内容,如果未能解决你的问题,请参考以下文章

NAudio 中的静音功能 (waveOut)

NAudio 多个 WaveOut 对象

NAudio - 停止 WaveOut 播放

NAudio WaveOut 设备 ID

记录来自 NAudio WaveIn 的输入,并输出到 NAudio WaveOut

NAudio WaveOut.PlaybackState 属性未更新