android AudioRecord amplitude de la lecture de MIC

Je suis en train d'enregistrer le son provenant du MICRO et de dessiner un graphique en temps réel. Je suis en mesure d'enregistrer et tracer le graphique. Le problème est que les valeurs sont enregistrées à l'aide du code ci-dessous ne sont pas précises, par exemple ... l'image ci-dessous est ce que j'obtiens quand il n'y a pas de son à tous les présents. J'ai vu des exemples à l'aide de la fft, mais je suis noot sûr si cela va être d'une aide quelconque dans mon cas, comme je suis en train de dessiner un temps domaine graphique et je ne vois pas le but de la convertir dans le domaine de fréquence (pour l'instant). D'autres sont à l'aide de la puissance moyenne, cela peut être utile, mais je ne suis pas sûr.

Merci pour toute aide.

android AudioRecord amplitude de la lecture de MIC

bufferSize = AudioRecord.getMinBufferSize(RECORDER_SAMPLERATE,RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING);

    recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
            RECORDER_SAMPLERATE, RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING, bufferSize);

    short data [] = new short[bufferSize];

    while (!Thread.interrupted()) {

        recorder.startRecording();

        recorder.read(data, 0, bufferSize);

        recorder.stop();

        for (short s : data)
        {
            try {
                Thread.sleep((long) 300.00);
            } catch (InterruptedException e) {
                //TODO Auto-generated catch block
                e.printStackTrace();
            }
            postUI (Math.abs(s));
        }
    }

    recorder.release();
salut comment avez-vous obtenu de l'amplitude du son dans l'enregistreur audio s'il vous plaît aider
enregistreur = new AudioRecord(MediaRecorder.AudioSource.MIC, RECORDER_SAMPLERATE, RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING, bufferSize); recorder.startRecording(); recorder.lire(data, 0, bufferSize); recorder.stop(); for (court s : data) { moyenne += Math.abs(s); }

OriginalL'auteur user591124 | 2012-05-14