我需要能够将两个或多个.wav文件一起加入到一个.wav文件中.我必须使用C#以编程方式执行此操作(第三方产品不是一个选项).我知道System.Media.SoundPlayer类,但我不打算播放.wav,而只是创建它.
Mar*_*ath 28
这是使用NAudio构建的基本WAV连接功能.这将确保只连接数据块(与另一个答案中链接的此CodeProject文章中的代码示例不同).它还可以保护您不会连接不共享相同格式的WAV文件.
public static void Concatenate(string outputFile, IEnumerable<string> sourceFiles)
{
byte[] buffer = new byte[1024];
WaveFileWriter waveFileWriter = null;
try
{
foreach (string sourceFile in sourceFiles)
{
using (WaveFileReader reader = new WaveFileReader(sourceFile))
{
if (waveFileWriter == null)
{
// first time in create new Writer
waveFileWriter = new WaveFileWriter(outputFile, reader.WaveFormat);
}
else
{
if (!reader.WaveFormat.Equals(waveFileWriter.WaveFormat))
{
throw new InvalidOperationException("Can't concatenate WAV Files that don't share the same format");
}
}
int read;
while ((read = reader.Read(buffer, 0, buffer.Length)) > 0)
{
waveFileWriter.WriteData(buffer, 0, read);
}
}
}
}
finally
{
if (waveFileWriter != null)
{
waveFileWriter.Dispose();
}
}
}
Run Code Online (Sandbox Code Playgroud)