http://www.mikespook.com/index.php/archives/762
Android 上有一些很有趣的应用,例如《吹裙子》、《吹气球》之类的。利用的是实时获取麦克风输入音量,然后进行相应的处理。网上也不少人问如何处理这个事情,也有一些解答,不过都没有实际的代码。简单摸索了一下,写了个小 Demo 试了试,果然可以。给大家共享一下。 不解释代码了,大家看注释。
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
public class RecordThread extends Thread {
private static int SAMPLE_RATE_IN_HZ = 8000;
private boolean isRun = false;
bs = AudioRecord.getMinBufferSize(SAMPLE_RATE_IN_HZ,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT);
ar = new AudioRecord(MediaRecorder.AudioSource.MIC, SAMPLE_RATE_IN_HZ,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT, bs);
byte[] buffer = new byte[bs];
int r = ar.read(buffer, 0, bs);
for (int i = 0; i < buffer.length; i++) {
v += buffer[i] * buffer[i];
Log.d("spl", String.valueOf(v / (float) r));
This entry was posted on Monday, November 8th, 2010 at 20:02 and is filed under android . You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response , or trackback from your own