5
Я хочу обнаружить вдувание микрофона на андроид. Google не очень помог. Является ли это возможным?Android - уровни входного сигнала микрофона?
Я хочу обнаружить вдувание микрофона на андроид. Google не очень помог. Является ли это возможным?Android - уровни входного сигнала микрофона?
OK! Я нашел это онлайн, так что это определенно кажется возможным. Похоже, вы можете вызвать mediaRecorder.getMaxAmplitude().
код из приложения под названием 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;
}
Вот source
Я получаю ошибку 'mRecorder.prepare();' и когда я добавляю блок catch try, ошибка исчезает, но возникает ошибка времени выполнения. С нетерпением жду хорошего ответа. – stack
Как я могу постоянно слушать событие в этом случае, я хочу, чтобы функция get Amplitude срабатывала всякий раз, когда есть шум/звук. – Sparsh