我试图将两个.wav文件合并到另一个文件中。但我只能在创建的文件中看到第一个文件的数据。
但新创建的文件占用的空间等于源文件大小的总和。
foreach (string sourceFile in fileNamesList)
{
FileStream file= File.Open(sourceFile, FileMode.Open);
FileStream outFile = File.Open(output, FileMode.Append,FileAccess.Write);
byte[] buffer = new byte[file.Length];
int read;
if ((read=file.Read(buffer, 0, (int)file.Length))>0)
{
outFile.Write(buffer, 0, read);
}
file.Close();
file.Dispose();
outFile.Close();
outFile.Dispose();
}
谢谢
答案 0 :(得分:1)
你不能只连接两个WAV文件,因为它们有一个标题,用于定义格式,通道数,采样率,长度等。
您需要为每个单独的WAV文件读取和解析头文件,然后使用正确的数据将新头写入新文件,然后附加每个WAV文件中的数据内容。
你不能轻易地连接两个具有不同采样率或通道数的WAV文件,但是它们并不太难(一旦你计算出标题格式)。
有关标题格式的详细信息,请参阅此处:
https://ccrma.stanford.edu/courses/422/projects/WaveFormat/
http://en.wikipedia.org/wiki/WAV
也许最简单的方法是使用Naudio之类的第三方工具来执行此操作,如下所述: