Naudio - 处理 WaveIn / WaveOut

Naudio - Disposing WaveIn / WaveOut

停止 WaveInWaveOut 后立即释放它们是否安全,而不是在 WaveIn.RecordingStoppedWaveOut.PlaybackStopped 的事件处理程序中?像这样:

MyWaveIn.StopRecording();
MyWaveIn.Dispose();
MyWaveIn = null;

并且:

MyWaveOut.Stop();
MyWaveOut.Dispose();
MyWaveOut = null;

如果WaveIn / WaveOut由于错误而停止,或者如果播放由于正在播放的文件到达结尾而停止,我将在事件处理程序中处理它们。我问的只是我明确阻止他们的情况。

我通常建议在 PlaybackStopped 事件处理程序中进行处理,但大多数声卡驱动程序似乎对您在播放或录制仍在进行时进行处理感到非常满意(在后台您只是调用 waveOutClosewaveInClose windows API).