4

私は、android.media.audiofx.Equalizer周波数帯域を得る/下げることができることを認識しています.私がする必要があるのは、周波数範囲を完全に除外することです.周波数を得る/下げるために使用されるコードは次のとおりです。

            Equalizer mEqualizer = new Equalizer(0,audioSessionId);
        mEqualizer.setEnabled(true);

        short bands = mEqualizer.getNumberOfBands();
        final short minEQLevel = mEqualizer.getBandLevelRange()[0];
        final short maxEQLevel = mEqualizer.getBandLevelRange()[1];
        mEqualizer.setBandLevel((short) 0, (short) (maxEQLevel));
        mEqualizer.setBandLevel((short) 1, (short) (maxEQLevel));
//the following code wont work because setting levels.lower than minimum level is not acceptable
        mEqualizer.setBandLevel((short) 2, (short) (-1000000));

私が求めたことが不可能である場合、あなたは何を提案しますか?最初からFFTクラスを書くには?

4

2 に答える 2

1

多くの調査の結果、DSP 用のネイティブ FIR メソッドがないことがわかりました。Android の組み込みのイコライザーを使用するか、独自の FIR フィルターを実装する必要があります。Android のイコライザーは周波数範囲のみをフィルタリングでき、ローパス フィルターを設定する方法はありません。

于 2013-03-15T22:47:12.610 に答える