我正在编写一个小应用程序,以从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
的关系。 最佳答案
Length
以字节为单位,TotalTime
使用TimeSpan
的AverageBytesPerSecond
将其转换为WaveFormat
关于c# - N Audio中AudioFileReader.Length和AudioFileReader.TotalTime之间是什么关系?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48136136/