簡體   English   中英

無法合並WAV文件

[英]Unable to merge wav files

我試圖將兩個.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();

            }

謝謝

您不能只連接兩個WAV文件,因為它們具有定義格式,通道數,采樣率,長度等的標題。

您將需要讀取和解析每個單獨的WAV文件的頭文件,然后將具有正確數據的新頭文件寫入新文件,然后將每個WAV文件的數據內容附加到文件中。

您將無法輕松地將兩個具有不同采樣率或通道數的WAV文件連接起來,但否則並不太難(一旦您確定了標頭格式)。

有關標題格式的詳細信息,請參見此處:

https://ccrma.stanford.edu/courses/422/projects/WaveFormat/

http://en.wikipedia.org/wiki/WAV

也許最簡單的方法是使用諸如Naudio之類的第三方工具來執行此操作,如下所述:

如何以編程方式將2個或更多.WAV文件連接在一起?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM