2014-08-28 193 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