我正在使用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作爲音頻輸出,則相同。 –