2011-04-20 139 views
4

我是Android開發人員和我的第一個應用程序的新手我已經創建了一個允許錄製音頻的應用程序。音頻記錄與音頻播放一樣正常工作。應用程序中缺少的一件事是在錄製過程中以vu表的形式向用戶反饋。在iOS平臺上,我相信有一個內置的vu表可以用於應用程序。我一直無法在Android平臺上找到相應的版本。在Android中錄製音頻時的VU(音頻)計數器

我一直在尋找致力於Android開發和谷歌搜索的各種論壇,但我還沒有發現任何有用的東西。

有沒有人知道用於錄製音頻的數字VU表的任何編碼示例?

有沒有人知道任何編碼示例顯示正在進行錄製時的反饋?

回答

0
+0

啊,優秀的文章,非常感謝。我能再問一個問題嗎?在其中一篇文章中,它使用MediaRecorder進行引用並使用MediaRecorder.getMaxAmplitude函數。我正在使用AudioRecord類,它沒有這個功能。關於用等效計算取代getMaxAmplitude的任何想法。 – Coffman 2011-04-21 05:48:51

+0

@Coffman - 對不起,我還沒有太多處理音頻系統。我的建議是在Tricoder應用程序之類的東西中查看源代碼,看看它是否做了你需要做的事情。 – 2011-04-24 18:38:02

2

你將不得不編寫你自己的VU表,但這並不難。

首先,獲取最近一組音頻採樣的當前最大幅度。在您用AudioRecord填充的緩衝區上循環,並記下最高值。這幾乎是MediaPlayer.getAmplitude在內部所做的。

現在你已經有了一個幅度,你只需繪製一個針或一個不斷調整大小的矩形(其中height = MAX_RECT_HEIGHT * curAmplitude/CONST_MAXIMUM_AMPLITUDE)或者任何在自定義視圖的draw()方法中。你將不得不查看高峯和衰變等,但這就是它的全部。

你可以在這裏查看內置的VU米動態壁紙的來源:VU meter