在android中绘制音频文件的频谱图
问题描述:
我正在开发一个Android应用程序,我需要创建一个频谱图(这是随着时间变化的声音频率频谱的可视表示)。我有一个音频文件,并使用FFT在频域中有信号,现在我需要绘制频谱图。我需要一个API来帮助我绘制这张图表,看起来像Matlab中的类似图表。任何建议?在android中绘制音频文件的频谱图
答
在适当尺寸的布局中声明一个空的<View>
元素,以适合您要显示的内容。鉴于它的ID为myview
。
实现你自己的类,从视图dervies并覆盖onDraw(Canvas canvas)
。让我们命名这个类MyView。将任何方法添加到此类中,以便可以将数据传递给它(即FFT的结果)。
在你的活动的onCreate方法,调用findViewById(R.id.myview).setContentView(new MyView());
实现MyView.onDraw(),这样你画你的数据可视化在画布上。调用视图类中的invalidate
方法,以在数据更改时强制重绘。
至于如何绘制,这取决于你。我想象一下每个频段的一串矩形或线条。一种颜色代表“真实”,另一种代表“虚构”。
你只是想图表帮助吗?将声音文件分解成PCM样本?对所述样本执行FFT变换以使其可以被绘制图表?你试过了什么? – selbie 2014-08-28 06:21:46
是的,我只是想帮助图表,我做了其余的是记录声音.pcm文件,并使用FFT.Now我只是想帮助绘制频谱图 – sandra 2014-08-28 06:33:59
快速搜索出现了jzy3d,看起来它可能有你正在找。 – SleuthEye 2014-08-28 12:49:58