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