我想開發一個小型的Android應用程序來測量當前的噪音水平(可能以dB爲單位)。但我不知道該在庫中尋找什麼。我不想記錄噪音。有人能給我一個指示什麼類可以看?Android中的查詢噪音水平
8
A
回答
4
我建議在尋找這些類:
android.media.AudioFormat
android.media.AudioManager
android.media.AudioTrack
我們在Blinkendroid audio package曾幾何時使用它們。
0
以下代碼片段顯示了我們過去如何獲得噪聲級別。不幸的是,這些文檔沒有說明#getMaxAmplitude()返回的單位。
// Start recording but don't store data
MediaRecorder mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setOutputFile("/dev/null");
mediaRecorder.prepare();
mediaRecorder.start();
// Obtain maximum amplitude since last call of getMaxAmplitude()
while(someCondition) {
int amplitude = mediaRecorder.getMaxAmplitude();
}
// Don't forget to release
mediaRecorder.reset();
mediaRecorder.release();
1
對我'maxAmplitude
'沒什麼幫助。經過一天的研究,我終於達到了目標。你可以在這裏找到我的解決方案:Android: AudioRecord Class Problem: Callback is never called
我看過這些,在我看來,你必須記錄一個文件,立即處理該文件,以獲得噪音水平,重複,這將是非常低效。沒有直接訪問那裏的麥克風... – fredley 2010-08-25 16:06:58
也許儲存庫中的這三個類可能會幫助你: http://code.google.com/p/blinkendroid/source/browse/trunk/blinkendroid/src/org/cbase/blinkendroid/audio /?r = 96 我們在此項目中錄製,處理和可視化音頻,但是再次放棄。 – keyboardsurfer 2010-08-25 16:09:30
我希望不做錄音,但我會檢查。 – Sebi 2010-08-25 16:11:32