#java #android
#java #Android
Вопрос:
Я использую Android equalizer API для создания фильтра верхних частот. Но даже если я установлю для каждого диапазона значение -1500, похоже, это не сработает. Звук воспроизводится хорошо, но эффектов эквалайзера нет. Вот мой код.
private void attachEq(int audioSessionId) {
Equalizer eq = new Equalizer(100,audioSessionId);
short[] freqRange = eq.getBandLevelRange();
short minLvl = freqRange[0];
short maxLvl = freqRange[1];
eq.setBandLevel((short) 4,minLvl);
eq.setBandLevel((short) 3,minLvl);
eq.setBandLevel((short) 2,minLvl);
eq.setBandLevel((short) 1,minLvl);
eq.setBandLevel((short) 0,minLvl);
}
Я получаю идентификатор аудиосеанса с помощью
в.getAudioSessionId()
где at — это уже инициализированная аудиодорожка. Как я уже сказал, AudioTrack воспроизводится нормально, но эквалайзер, похоже, не оказывает никакого эффекта.
Редактировать: должен ли я устанавливать уровни диапазона перед вызовом at.play () или после? Я делал это раньше в.play (), и, похоже, это не работает.
Ответ №1:
Я понял это! Я не звонил eq.setEnabled(true)
. Теперь это работает!