均衡器是一种可以分别调节各种频率成分电信号放大量的电子设备,通过对各种不同频率的电信号的调节来补偿扬声器和声场的缺陷,补偿和修饰各种声源及其它特殊作用。一般均衡器仅能对高频、中频、低频三段频率电信号分别进行调节。在创建Equalizer实例时,在音频框架层将会同时创建一个均衡器引擎。均衡器的细节由OpenSL ES 1.0.1规范定义。
        为了在通过AndroidAudioTrack、MediaPlayer进行音频播放时具有均衡器特效,在构建Equalizer实例时指明音频流的会话ID即可。如果指定的会话ID为0,则Equalizer作用于主要的音频输出混音器(mix)上,Equalizer将会话ID指定为0要"android.permission.MODIFY_AUDIO_SETTINGS"权限。
       均衡器涉及的参数包括:
               PARAM_BAND_FREQ_RANGE、PARAM_BAND_LEVEL、
               PARAM_CENTER_FREQ、PARAM_CURRENT_PRESET、PARAM_GET_BAND、
               PARAM_GET_NUM_OF_PRESETS、PARAM_GET_PRESET_NAME、PARAM_LEVEL_RANGE、
               PARAM_NUM_BANDS、PARAM_STRING_SIZE_MAX等。
         均衡器常用的方法包括:
                 getNumberOfBands ()		//获得频段数
                 getBandLevel()			//获得频段增益(db)
                 getBandLevelRange()		//获得频段增益范围
                 getCenterFreq()			//获得中心频率
                 setBandLevel()			//设置频段增益(db)
                 setParameterListener()	//设置Equalizer.OnParameterChangeListener监听器
         下面是实现均衡器可视化的一般过程:
                 mEqualizer = new Equalizer(0, mMediaPlayer.getAudioSessionId());
                 mEqualizer.setEnabled(true); //打开均衡器
                 short bands = mEqualizer.getNumberOfBands();				//获得频道数
                 final short minEQLevel = mEqualizer.getBandLevelRange()[0];	//小增益
                 final short maxEQLevel = mEqualizer.getBandLevelRange()[1];	//大增益
                 for (short i = 0; i < bands; i++)
                 {
                     int centerFreq = mEqualizer.getCenterFreq(band) / 1000;	//获得中心频率
                     short gain = mEqualizer.getBandLevel(band); //获得频段增益
                     ……..
                 }