Desidero sviluppare una piccola app Android per misurare il livello di rumore corrente (probabilmente in dB). Ma non ho idea di cosa cercare nelle librerie. Non voglio registrare il rumore. Qualcuno può darmi un puntatore su quali classi guardare?Livello di rumore delle query in Android
8
A
risposta
4
vi consiglio di guardare in queste classi:
android.media.AudioFormat
android.media.AudioManager
android.media.AudioTrack
Li abbiamo utilizzati nel Blinkendroid audio package a poco tempo fa.
0
Il seguente frammento di codice mostra come abbiamo ottenuto il livello di rumore nel passato. Sfortunatamente la documentazione non dice quale unità #getMaxAmplitude() restituisce.
// Start recording but don't store data
MediaRecorder mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setOutputFile("/dev/null");
mediaRecorder.prepare();
mediaRecorder.start();
// Obtain maximum amplitude since last call of getMaxAmplitude()
while(someCondition) {
int amplitude = mediaRecorder.getMaxAmplitude();
}
// Don't forget to release
mediaRecorder.reset();
mediaRecorder.release();
1
Per me 'maxAmplitude
' non è stato utile. Dopo una giornata di ricerche ho finalmente raggiunto il mio obiettivo. Puoi trovare la mia soluzione qui: Android: AudioRecord Class Problem: Callback is never called
Ho dato un'occhiata a questi, mi sembra che dovresti registrare un file, elaborare immediatamente quel file per ottenere il livello di rumore, ripetere, che sarebbe estremamente inefficiente. Non c'è accesso diretto al microfono ... – fredley
Forse queste tre classi nel repository potrebbero aiutarti lì: http://code.google.com/p/blinkendroid/source/browse/trunk/blinkendroid/src/org/cbase/blinkendroid/audio /? r = 96 Abbiamo registrato, elaborato e visualizzato l'audio in questo progetto, ma l'ho rilasciato di nuovo. – keyboardsurfer
Speravo di farlo senza registrare, ma controllerò. – Sebi