Как правильно настроить аудио виртуализатор

Я пытаюсь сделать эквалайзер 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)

Другие вопросы по тегам