I have implemented a 5 band equalizer like this-
final short lowerEqualizerBandLevel = MusicService.equalizer.getBandLevelRange()[0];
final short upperEqualizerBandLevel = MusicService.equalizer.getBandLevelRange()[1];
for (short i = 0; i < 5; i++) {
final short equalizerBandIndex = i;
seekBars[i] = (SeekBar) findViewById(seekBars[i]);
seekBars[i].setMax(upperEqualizerBandLevel - lowerEqualizerBandLevel);
levels[i] = (TextView) findViewById(levels[i]);
levels[i].setText((MusicService.equalizer.getCenterFreq(equalizerBandIndex) / 1000) + "Hz");
seekBars[i].setProgress((upperEqualizerBandLevel - lowerEqualizerBandLevel) / 2);
seekBars[i].setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
MusicService.equalizer.setBandLevel(equalizerBandIndex, (short) (progress + lowerEqualizerBandLevel));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}
However I wanted to add a reset button to reset all the band levels for equalizer which I did like this-
reset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (short i = 0; i < 5; i++) {
MusicService.equalizer.setBandLevel(i, (short) MusicService.equalizer.getCenterFreq(i));
seekBars[i].setProgress((upperEqualizerBandLevel - lowerEqualizerBandLevel) / 2);
}
}
});
I wanted to know if this is
MusicService.equalizer.setBandLevel(i, (short) MusicService.equalizer.getCenterFreq(i));
is the correct way of resetting the equalizer.
And also sometimes i get a really high pitch sound by this method.