C# 使用NAudio混合两个音频文件

C# 使用NAudio混合两个音频文件,c#,audio,naudio,C#,Audio,Naudio,我需要在一个音频文件上制造噪音。我有第一个音频(数据)和第二个音频(噪声)。如何在第一个音频上添加噪声,使其循环。或者,如果第一个音频比音频噪声短,则结果是第一个音频的持续时间 我举了一个他们教程的例子。但这只是一个文件覆盖在另一个文件上。没有循环和长度优化的可能性 using(var reader1 = new AudioFileReader("file1.wav")) using(var reader2 = new AudioFileReader("file2.wav")) { va

我需要在一个音频文件上制造噪音。我有第一个音频(数据)和第二个音频(噪声)。如何在第一个音频上添加噪声,使其循环。或者,如果第一个音频比音频噪声短,则结果是第一个音频的持续时间

我举了一个他们教程的例子。但这只是一个文件覆盖在另一个文件上。没有循环和长度优化的可能性

using(var reader1 = new AudioFileReader("file1.wav"))
using(var reader2 = new AudioFileReader("file2.wav"))
{
    var mixer = new MixingSampleProvider(new[] { reader1, reader2 });
    WaveFileWriter.CreateWaveFile16("mixed.wav", mixer);
}

您可以使用类似于循环较短文件的循环技术(随后需要使用
ToSampleProvider
)。 然后在
MixingSampleProvider
上使用
Take
扩展名方法,确保只读取较长文件的持续时间,因此不会创建无限大的WAV文件