我正在编写一个小应用程序来创建MP3文件的波形。我创建了一个位图,但目前只是让它太大(12800像素),所以我可以确保整个波长适合。
var samples = reader.Length / (reader.WaveFormat.Channels * reader.WaveFormat.BitsPerSample / 8);
Bitmap bim = new Bitmap(12800, 200);
Graphics g = Graphics.FromImage(bim);
这样可行,但我最终在波形图像的末尾有一堆空格:
我想更聪明地做这件事,并使用由样本数计算的变量来确保位图宽度与波形的长度相匹配(即没有空格)。
我真正想做的是将宽度与时间联系起来 - 因此1秒(例如)15像素。
我可以使用AudioFileReader.TotalTime
获取持续时间,但我无法弄清楚这与AudioFileReader.Length
的关系。
答案 0 :(得分:2)
Length
以字节为单位,TotalTime
使用TimeSpan
<{p>的AverageBytesPerSecond
将其转换为WaveFormat