我将来希望能够使用C# .NET 4.0进行一些音频项目,因此我收集了一些有关音频录制、处理WAVE文件等的代码示例。但是我找不到的是:
如何实时绘制音频波形图/频谱图?显然,创建一个内存位图并将其加载到图片框中会非常缓慢,对吧?那么,最简单的方法是什么?
谢谢!
如何实时绘制音频波形图/频谱图?显然,创建一个内存位图并将其加载到图片框中会非常缓慢,对吧?那么,最简单的方法是什么?
谢谢!
您可以使用基于GDI+的Windows窗体中的图形和绘图直接绘制您的内容。这比将内容渲染到位图并在图片框中显示要快得多,特别是对于不断变化的内容。
直接在适当的控件表面,例如一个Panel上进行绘画。获取控件的图形上下文,并使用Invalidate()函数在Paint事件中更新它。每次使其无效时,Paint会自动调用。这是您想要放置绘图逻辑的地方。
最好的更新方法是使用DrawImageUnscaled()。利用LockBits方法制作图像是最快的方法,这里有很好的解释:
https://web.archive.org/web/20141229164101/http://bobpowell.net/lockingbits.aspx