¿Cómo trabajar con el resultado onWaveFormDataCapture del objeto Visualizer?

Soy nuevo en la programación de Android y la visualización de audio. Quiero crear un visualizador de audio simple usandoMediaPlayer yVisualizer clases Mi problema es que no sé qué.wave form data realmente es. ¿Debo usarlo para visualizar audio? Estoy usando el código de abajo. El problema es que solo visualizará el audio durante los primeros 10 a 12 segundos del archivo; ¡Después de eso, no puedo capturar más datos! ¿Qué hice mal?

public void attachVisualizer()
{
    Visualizer vis = new Visualizer(mPlayer.getAudioSessionId());

    vis.setCaptureSize(Visualizer.getCaptureSizeRange()[0]);
    vis.setDataCaptureListener(new Visualizer.OnDataCaptureListener() {
        public void onWaveFormDataCapture(Visualizer visualizer, byte[] bytes, int samplingRate) {
            int sum = 0;

            for(int i = 0; i < bytes.length; i++) {
                sum += bytes[i];
            }

            if(sum > 8000) {
                // Do something which uses mPlayer.getCurrentPosition() in mathematics
            }
        }

        public void onFftDataCapture(Visualizer visualizer, byte[] fft, int samplingRate) {}
    }, Visualizer.getMaxCaptureRate() , true, false);

    vis.setEnabled(true);
}

EDITAR
Y otra pregunta en mi mente es, ¿cómo grabo la cantidad de tiempo contenida en un segmento de audio determinado?

Respuestas a la pregunta(1)

Su respuesta a la pregunta