3

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

4

2 回答 2

2

<View>在您的布局中声明一个适当大小并适合您想要显示的内容的空元素。给它一个 id myview

实现您自己的从 View 和 override 派生的类onDraw(Canvas canvas)。我们将这个类命名为 MyView。向这个类添加任何方法,以便它可以将数据传递给它(即 FFT 的结果)。

在 Activity 的 onCreate 方法中,调用findViewById(R.id.myview).setContentView(new MyView());

实现 MyView.onDraw() 以便在画布上绘制数据可视化。invalidate如果数据更改,请调用视图类上的方法以强制它重绘。

至于画什么,就看你自己了。我想象每个频段都有一堆矩形或线条。一种颜色代表“真实”,另一种颜色代表“想象”。

于 2014-08-28T08:06:29.830 回答
1

如果您正在寻找可以帮助您绘制频谱图的 android 库,前提是您在对音频信号进行 FFT 后拥有数据点,您应该查看以下库

MPAndroidChart

图表引擎

EazeGraph

于 2015-07-17T19:45:32.317 回答