Wie arbeite ich mit dem onWaveFormDataCapture-Ergebnis eines Visualizer-Objekts?

Ich bin neu in Android-Programmierung und Audio-Visualisierung. Ich möchte einen einfachen Audio-Visualizer mit erstellenMediaPlayer undVisualizer Klassen. Mein Problem ist, ich weiß nicht waswave form data wirklich ist. Muss ich es verwenden, um Audio zu visualisieren? Ich benutze den Code unten. Das Problem ist, dass Audio nur für die ersten 10-12 Sekunden der Datei angezeigt wird. danach kann ich keine daten mehr erfassen! Was habe ich falsch gemacht?

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);
}

BEARBEITEN
Eine andere Frage ist, wie ich die in einem bestimmten Audiosegment enthaltene Zeitspanne aufzeichne.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage