Tag: 正弦波

NAudio使用C#播放正弦波x毫秒

我正在使用NAudio播放给定频率的正弦波,如在博客文章中播放的Nir的Sine Wave 。 我只想让声音播放()x毫秒然后停止。 我尝试了一个thread.sleep,但声音立即停止。 我尝试了一个计时器,但是当处理WaveOut时,会出现一个跨线程exception。 我尝试了这段代码,但是当我打电话给哔哔声时,程序冻结了。 public class Beep { public Beep(int freq, int ms) { SineWaveProvider32 sineWaveProvider = new SineWaveProvider32(); sineWaveProvider.Amplitude = 0.25f; sineWaveProvider.Frequency = freq; NAudio.Wave.WaveOut waveOut = new NAudio.Wave.WaveOut(WaveCallbackInfo.FunctionCallback()); waveOut.Init(sineWaveProvider); waveOut.Play(); Thread.Sleep(ms); waveOut.Stop(); waveOut.Dispose(); } } public class SineWaveProvider32 : NAudio.Wave.WaveProvider32 { int sample; public SineWaveProvider32() { Frequency = 1000; Amplitude […]