Android应用程序,使用Phonegap / Cordova监听声音和录音音量

时间:2013-11-22 17:07:32

标签: android audio cordova

我正在尝试编写一款可以通过手机/平板电脑的麦克风收听声音的应用。我认为捕捉声音并不太难,我找到了一些代码here

我想知道如何关联音量级别?理想情况下,我想将声级转换为分贝,但任意比例都可以。

1 个答案:

答案 0 :(得分:1)

最后我只是用Java SDK来做这件事,然后当我将应用程序转换为iOS时,我在objective-c中重写了它。

在Android上,您可以导入以下库:

import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;

然后拨打这样的电话来查看录音的幅度:

int minSize = AudioRecord.getMinBufferSize(8000,AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT);
AudioRecord ar = new AudioRecord(MediaRecorder.AudioSource.MIC, 8000,AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT,minSize);

short[] buffer = new short[minSize];
ar.startRecording();
while(1){
    ar.read(buffer, 0, val*minSize);        
    average_buffer = 0;
    for (int i = 0; i < minSize; i++){
            average_buffer += (int) Math.sqrt((float)buffer[i]*buffer[i]);
    }
    Log.i("NOISE LEVEL", Integer.toString(average_buffer);
}