N Audio中AudioFileReader.Length和AudioFileReader.TotalTime有什么关系?

What is the relationship between AudioFileReader.Length and AudioFileReader.TotalTime in N Audio?

我正在编写一个小应用程序来从 MP3 文件创建波形。我创建了一个位图,但目前只是让它变得太大(12800 像素)所以我可以确保整个波长适合。

var samples = reader.Length / (reader.WaveFormat.Channels * reader.WaveFormat.BitsPerSample / 8);
Bitmap bim = new Bitmap(12800, 200);
Graphics g = Graphics.FromImage(bim);

这行得通,但我在波形图像的末尾得到了一堆白色 space:

我想更聪明地做到这一点,并使用由样本数计算的变量来确保位图宽度与波形长度匹配(即没有白色space)。

我真正想做的是将宽度与时间联系起来 - 所以 1 秒是(例如)15 个像素。

我可以使用 AudioFileReader.TotalTime 获取持续时间,但我无法弄清楚这与 AudioFileReader.Length 有何关联。

Length 以字节为单位,TotalTime 使用 WaveFormat

AverageBytesPerSecond 将其转换为 TimeSpan