【问题标题】:How to split wav file into two or more parts using c#如何使用 c# 将 wav 文件拆分为两个或多个部分
【发布时间】:2014-09-05 10:35:30
【问题描述】:

下面的代码用于在按钮点击事件中将一个 600mb 的大音频 wav 文件拆分为两部分..

protected void Button1_Click(object sender, EventArgs e)
{
string inputFile = Server.MapPath("~/inputPath/BetterFasterCheaperGovt-HD+720p.wav"); // Substitute this with your Input File 
    FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
    int numberOfFiles = 2;
    int sizeOfEachFile = (int)Math.Ceiling((double)fs.Length / numberOfFiles);
    for (int i = 1; i <= numberOfFiles; i++)
    {
        string baseFileName = Path.GetFileNameWithoutExtension(inputFile);
        string extension = Path.GetExtension(inputFile);
        FileStream outputFile = new FileStream(Path.GetDirectoryName(inputFile) + "\\" + baseFileName + "_" + i.ToString().PadLeft(3, Convert.ToChar("0")) + extension, FileMode.Create, FileAccess.Write);
        int bytesRead = 0;
        byte[] buffer = new byte[sizeOfEachFile];
        if ((bytesRead = fs.Read(buffer, 0, sizeOfEachFile)) > 0)
        {
            outputFile.Write(buffer, 0, bytesRead);
        }
        outputFile.Close();
    }
    fs.Close();
    ClientScript.RegisterStartupScript(this.GetType(), "popup", "alert('success');", true);
}

它成功拆分成两个大小相同的文件,即 300mb,但 part1.wmv 为 300mb,显示长度为 1hr 16min part2.wmv 是 300mb 长度是 0。

表示 part2.wav 中没有音频,只创建空白的损坏文件。

请帮我解决这个问题。 谢谢!!

【问题讨论】:

  • 您不能像处理纯文本那样只拆分 WAV 文件。你需要遵守它的file format
  • 您知道不能像这样拆分 wmv 文件吗?至少你必须修复标题。
  • 你正在做的事情肯定会分割文件,但它只有在它们再次连接时才会起作用,你通过分割它破坏了 WAVE 标头。

标签: c# file audio io split


【解决方案1】:

看看Windows Media Encoder SDK。像这样的:

Int32 StartTime = 0;
Int32 EndTime = 76 * 1000; //1hr 16min
String SourceName = "original.mp3";
String DestinationName = "newsplit.mp3";
WMEncBasicEdit SplitFile = new WMEncBasicEdit();
SplitFile.MediaFile = SourceName;
SplitFile.OutputFile = DestinationName;
SplitFile.MarkIn = StartTime;
SplitFile.MarkOut = EndTime;
SplitFile.Start();

【讨论】:

  • 我们需要 WMEncoderLib.dll 来解决这个问题。但是 dll 文件在哪里?
  • microsoft 中的链接均无效。无法下载
  • 您下载并安装了Windows Media Encoder SDK 吗?这是链接Windows Media Encoder 9 Series SDK
  • 您是否有一些防火墙限制?如果代码适合您,请接受答案。
猜你喜欢
  • 2016-10-26
  • 1970-01-01
  • 2019-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-19
相关资源
最近更新 更多