c# - 如何使用C#将WAV文件拆分为两个或更多部分

标签 c# file audio io split

下面的代码用于在按钮click事件中将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中没有音频,只会创建空白损坏的文件。

请帮助我解决问题。
谢谢!!

最佳答案

看看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();

关于c# - 如何使用C#将WAV文件拆分为两个或更多部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25683916/

相关文章:

c# - 在 Unity 中使用 Reflection.Emit 设置静态字段的值失败

c# - 以编程方式停止应用程序池问题 IIS7

java - java中的四舍五入 double

java - 导出后 Eclipse 插件项目中的 ASCII 文件不可见

audio - 无法更改视频的节目编号

php - 声云错误

c# - 从 Task<> 获取对象

c# - 使用linq在查找表中查找记录

php - 如何使用 PHP 向任何文件添加数字签名(RSA、证书等)?

android - 检查音频流