Как реализовать эквалайзер на андроиде

Мне нужно реализовать эквалайзер в Android, и я также нахожу исходный код здесь

Но я понятия не имею о NumberOfBands и BandLevelRange (что это такое?) и как с ними справиться.

данный код, который я показал вам, взят из исходного кода, который я упомянул.

eq = new Equalizer(0, 0);

        if (eq != null)
        {
            eq.setEnabled(true);

            int num_bands = eq.getNumberOfBands();

            num_sliders = num_bands;

            short r[] = eq.getBandLevelRange();

            min_level = r[0];

            max_level = r[1];

            for (int i = 0; i < num_sliders && i < MAX_SLIDERS; i++) 
            {
                int[] freq_range = eq.getBandFreqRange((short) i);

                sliders[i].setOnSeekBarChangeListener(this);

                slider_labels[i].setText(formatBandLabel(freq_range));
            }

        }

        for (int i = num_sliders; i < MAX_SLIDERS; i++) 
        {
            sliders[i].setVisibility(View.GONE);

            slider_labels[i].setVisibility(View.GONE);
        }

        bb = new BassBoost(0, 0);

        if (bb != null) 
        {
        }
        else 
        {
            bass_boost.setVisibility(View.GONE);

            bass_boost_label.setVisibility(View.GONE);
        }

        updateUI();

А в onProgresschanged так и есть

@Override
    public void onProgressChanged(SeekBar seekBar, int level, boolean fromTouch) {

        if (seekBar == bass_boost) {
            bb.setEnabled(level > 0 ? true : false);

            bb.setStrength((short) level); // Already in the right range 0-1000
        } else if (eq != null) {
            int new_level = min_level + (max_level - min_level) * level / 100;

            for (int i = 0; i < num_sliders; i++) {
                if (sliders[i] == seekBar) {
                    eq.setBandLevel((short) i, (short) new_level);

                    break;
                }
            }
        }

    }

Желаемый эквалайзер

Я должен создать его, как на изображении выше, но не знаю, что такое 60, 3k, 14k и что означает от -15db до +15db.

Изменить

Я понимаю, что он делает, он меняет частоту каждой полосы, но что происходит, когда мы увеличиваем или уменьшаем частоту. На каком этапе я получаю максимальный звук и на каком этапе я получаю минимальный звук.


person Xar-e-ahmer Khan    schedule 23.12.2014    source источник
comment
Я вижу 5 полос (от 60 Гц до 14 кГц) в диапазоне от -15 дБ до +15 дБ. Если вы не знаете, что это значит, вам лучше сменить проект. I have to implement an Equalizer 1 Похоже, вы копируете существующий источник. 2 Вы должны понимать, что такое эквалайзер и как он работает в реальной жизни, прежде чем пытаться эмулировать его в программном обеспечении.   -  person Phantômaxx    schedule 23.12.2014
comment
да @DerGolem Я хочу понять, что делает эквалайзер в реальной жизни. тогда я смогу это реализовать, ваша вторая часть - это мой вопрос   -  person Xar-e-ahmer Khan    schedule 23.12.2014
comment
Итак, правильный метод: Сначала прочитать что-нибудь (Википедию?) об эквалайзерах. Затем приступайте к созданию своего приложения, когда у вас будет четкое представление о том, каким оно будет. В противном случае вы едете вслепую по шоссе.   -  person Phantômaxx    schedule 23.12.2014