我正在使用NAudio库来编写一个简单的WinForms录音机/播放器。我的问题是我怎么知道播放完成?之后我需要关闭波浪流。Naudio,如何判断播放完成
我知道下面有上市PlaybackStopped事件:
wfr = new NAudio.Wave.WaveFileReader(this.outputFilename);
audioOutput = new DirectSoundOut();
WaveChannel32 wc = new NAudio.Wave.WaveChannel32(wfr);
audioOutput.Init(wc);
audioOutput.PlaybackStopped += new EventHandler<StoppedEventArgs>(audioOutput_PlaybackStopped);
audioOutput.Play();
但这PlaybackStopped事件似乎只能通过调用audioOutput.stop()
被触发,没有人知道如何确定是否播放完毕?
我创造了这个问题,一个开源项目,你可以在这里找到:https://code.google.com/p/stack-overflow-questions/
确定播放完成后没有触发'PlaybackStopped'?因为从[源](http://daisy.trac.cvsdude.com/urakawa-sdk/browser/trunk/csharp/audio/NAudio/Wave/WaveOutputs/DirectSoundOut.cs?rev=1346)那末' processSamples()'在终于触发事件... – nemesv
是的,我相信。我在一个新项目中测试过。它仍然会产生同样的问题。这是一个错误吗? –
如果使用WaveOut作为音频输出,则相同。 –