使用NAudio扩展或修剪mp3文件后,持续时间错误

时间:2019-09-03 07:09:44

标签: c# naudio

我正在尝试使用我在Stackoverflow上找到的一些代码,使用NAudio扩展或修剪mp3文件。一切正常,但是某些音频播放器在播放时显示错误的持续时间(原始音频文件的持续时间)。有什么想法我可以解决这个问题吗?

public async Task ExtendOrTrim(string sourcePath, double length, string destinationPath)
{
    double totaltrack = 0;

    using (var output = File.Create(destinationPath))
    {
        while (totaltrack < length)
        {
            using (var source = Assembly.GetExecutingAssembly().GetManifestResourceStream(sourcePath))
            {
                var reader = new Mp3FileReader(source);

                if ((output.Position == 0) && (reader.Id3v2Tag != null))
                {
                    output.Write(reader.Id3v2Tag.RawData, 0, reader.Id3v2Tag.RawData.Length);
                }

                Mp3Frame frame;
                while ((frame = reader.ReadNextFrame()) != null && reader.CurrentTime.TotalSeconds + totaltrack < length)
                {
                    output.Write(frame.RawData, 0, frame.RawData.Length);
                }

                    totaltrack += reader.CurrentTime.TotalSeconds; 
            }
        }
    }
}

0 个答案:

没有答案