Question

Je veux développer une petite application Android pour mesurer le niveau de bruit courant (probablyin dB). Mais je ne sais pas ce qu'il faut chercher dans les libs. Je ne veux pas enregistrer le bruit. Quelqu'un peut-il me donner un pointeur ce que les classes à regarder?

Était-ce utile?

La solution

Je recommande à la recherche dans ces classes:

android.media.AudioFormat
android.media.AudioManager
android.media.AudioTrack

Nous les avons utilisés dans le package audio Blinkendroid ya peu de temps.

Autres conseils

Pour moi maxAmplitude 'n'a pas été utile. Après une journée de recherche, je fini par atteindre mon objectif. Vous pouvez trouver ici ma solution: Android: audiorecord Classe problème : Callback est jamais appelé

L'entrefilet code suivant montre comment nous avons obtenu le niveau de bruit dans le passé. Malheureusement, la documentation ne dit pas ce que l'unité des rendements #getMaxAmplitude ().

// 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();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top