You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

40 lines
1.3 KiB

package com.frank.androidmedia.wrap;
import android.media.audiofx.Visualizer;
import android.util.Log;
/**
* Visualizer of Audio frequency
* Created by frank on 2020/10/20.
*/
public class AudioVisualizer {
private Visualizer visualizer;
public void initVisualizer(int audioSession, boolean waveform, boolean fft, Visualizer.OnDataCaptureListener dataCaptureListener) {
try {
visualizer = new Visualizer(audioSession);
int captureSize = Visualizer.getCaptureSizeRange()[1];
int captureRate = Visualizer.getMaxCaptureRate() / 2;
visualizer.setCaptureSize(captureSize);
visualizer.setDataCaptureListener(dataCaptureListener, captureRate, waveform, fft);
visualizer.setScalingMode(Visualizer.SCALING_MODE_NORMALIZED);
visualizer.setEnabled(true);
} catch (Exception e) {
Log.e("AudioVisualizer", "initVisualizer error=" + e.toString());
releaseVisualizer();
}
}
public void releaseVisualizer() {
if (visualizer != null) {
int captureRate = Visualizer.getMaxCaptureRate() / 2;
visualizer.setEnabled(false);
visualizer.setDataCaptureListener(null, captureRate, false, false);
visualizer.release();
visualizer = null;
}
}
}