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