在音频文件中添加Beep或Silence给定的持续时间|| NAudio || C#

时间:2018-05-24 08:55:06

标签: c# naudio

我正在使用NAudio来录制和播放音频文件。现在,我希望在给定的持续时间内在音频文件中添加静音或哔声。你能否建议NAudio提供商名称来实现它?

1 个答案:

答案 0 :(得分:2)

要发出蜂鸣声,请查看SignalGenerator,它可以产生正弦波。有一种Take扩展方法可以限制提示音的持续时间。为了保持沉默,您可以使用除SilenceProvider之外的其他技术。

下面是一个简单的示例,两个蜂鸣声之间保持沉默:

var beep1 = (new SignalGenerator(){ Frequency = 1000, Gain = 0.2}).Take(TimeSpan.FromSeconds(2));
var silence = new SilenceProvider(beep1.WaveFormat).ToSampleProvider().Take(TimeSpan.FromSeconds(2));
var beep2 = (new SignalGenerator() { Frequency = 1500, Gain = 0.2 }).Take(TimeSpan.FromSeconds(2));
var concat = beep1.FollowedBy(silence).FollowedBy(beep2);
using (var wo = new WaveOutEvent())
{
    wo.Init(concat);
    wo.Play();
    while(wo.PlaybackState == PlaybackState.Playing)
    {
        Thread.Sleep(500);
    }
}