2014-08-28 191 views
1

我正在开发一个Android应用程序,我需要创建一个频谱图(这是随着时间变化的声音频率频谱的可视表示)。我有一个音频文件,并使用FFT在频域中有信号,现在我需要绘制频谱图。我需要一个API来帮助我绘制这张图表,看起来像Matlab中的类似图表。任何建议?在android中绘制音频文件的频谱图

+2

你只是想图表帮助吗?将声音文件分解成PCM样本?对所述样本执行FFT变换以使其可以被绘制图表?你试过了什么? – selbie 2014-08-28 06:21:46

+0

是的,我只是想帮助图表,我做了其余的是记录声音.pcm文件,并使用FFT.Now我只是想帮助绘制频谱图 – sandra 2014-08-28 06:33:59

+0

快速搜索出现了jzy3d,看起来它可能有你正在找。 – SleuthEye 2014-08-28 12:49:58

回答

1

在适当尺寸的布局中声明一个空的<View>元素,以适合您要显示的内容。鉴于它的ID为myview

实现你自己的类,从视图dervies并覆盖onDraw(Canvas canvas)。让我们命名这个类MyView。将任何方法添加到此类中,以便可以将数据传递给它(即FFT的结果)。

在你的活动的onCreate方法,调用findViewById(R.id.myview).setContentView(new MyView());

实现MyView.onDraw(),这样你画你的数据可视化在画布上。调用视图类中的invalidate方法,以在数据更改时强制重绘。

至于如何绘制,这取决于你。我想象一下每个频段的一串矩形或线条。一种颜色代表“真实”,另一种代表“虚构”。

+0

您确定没有API可用于在android中绘制声谱图吗? – sandra 2014-08-28 09:36:55

+0

我不知道绘制频谱图的核心Android SDK库中的任何内容。这将是一个非常专业的类库,用于为所有应用程序设计平台的SDK。如果你不想自己渲染,你可能需要寻找第三方库。 – selbie 2014-08-28 22:38:28

1

如果你正在寻找的Android库,这将有助于您绘制频谱图,只要你有数据点你做的音频信号的FFT, 你应该看看下面的库后

MPAndroidChart

AChartEngine

EazeGraph