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
我正在编写一个小应用程序来从 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