2010-08-20 12 views

Respuesta

7

OK! Encontré esto en línea, así que definitivamente parece posible. Parece que puede llamar a mediaRecorder.getMaxAmplitude().

Código de una aplicación llamada NoiseAlert

public void start() { 
    if (mRecorder == null) { 
     mRecorder = new MediaRecorder(); 
     mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
     mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
     mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
     mRecorder.setOutputFile("/dev/null"); 
     mRecorder.prepare(); 
     mRecorder.start(); 
     mEMA = 0.0; 
    } 
} 

public double getAmplitude() { 
    if (mRecorder != null) 
     return (mRecorder.getMaxAmplitude()/2700.0); 
    else 
     return 0; 
} 

Aquí está la source

+0

estoy consiguiendo error en 'mRecorder.prepare();' y cuando agrego try catch block a él, el error desaparece pero se produce un error de tiempo de ejecución. Esperando ansiosamente alguna buena respuesta. – stack

+0

Como puedo escuchar continuamente el evento en este caso, quiero que se active la función de Amplitude cada vez que haya ruido/sonido. – Sparsh

Cuestiones relacionadas