Как правильно настроить аудио виртуализатор
Я пытаюсь сделать эквалайзер Android, но я не могу правильно использовать виртуализатор.Не Visualizer, это часть моего кода, приложение не падает, но просто не работает
vr = new Virtualizer(0, mediaPlayer.getAudioSessionId());
virtal.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
if (seekBar == virtal) {
vr.setEnabled(level > 0 ? true : false);
vr.setStrength((short) i); // Already in the right range 0-1000
} else if (eq != null) {
int new_level = min_level + (max_level - min_level) * level / 100;
for (int j = 0; j < num_sliders; j++) {
if (sliders[j] == seekBar) {
eq.setBandLevel((short) j, (short) new_level);
break;
}
}
}
}
Я могу использовать эквалайзер и класс baseboost, но не знаю, почему этот класс не дает никакого эффекта в аудио. Любая помощь или руководство будут полезны. Я следил за некоторыми проектами, такими как музыкальный проигрыватель James, но не знаю в чем проблема.
0 ответов
Вы забыли принудительно включить режим виртуализации - обычно вам следует проверять, поддерживает ли его аудиофайл и устройство, но это даст некоторые результаты независимо:
int mode = Virtualizer.VIRTUALIZATION_MODE_TRANSAURAL; // Or BINAURAL
vr.setEnabled(true);
vr.forceVirtualizationMode(mode);
Полная документация режимов здесь: https://developer.android.com/reference/android/media/audiofx/Virtualizer#forceVirtualizationMode(int)