均衡器用于改变特定音乐源或主输出混音的频率响应。应用程序创建一个均衡器对象来实例化和控制音频框架中的均衡器引擎。应用程序可以简单地使用预定义的预设,也可以更精确地控制均衡器控制的每个频带中的增益。频率范围从低到高包括:超低频、低频、中频、高频、超高频。
均衡器在Android 9之前跟之后是不同实现,Android 9之前只有五段,Android 9后有10段。均衡器默认有古典、舞蹈、民俗、重金属、嘻哈、爵士、流行、摇滚等风格。十段值是31, 62, 125, 250, 500, 1000, 2000, 4000, 8000, 16000。
1. 均衡器权限
实现Eq需要动态添加Manifest.permission.RECORD_AUDIO权限
2. Android 9之前的五段音效实现
sessionId是通过MediaPlayer获取的mMediaPlayer.getAudioSessionId(),如果sessionId为0表示全局控制,即可以控制其它音乐播放器或者视频的播放音效。eqValue就是五段音效每段的值,可以预设,也可以自己设置一个seekbar动态去调节每段的值,从小到大分别是低音到高音。
mEqualizer = new Equalizer(1000, mSessionId);
mEqualizer.setEnabled(true);
int[] eqValue = new int[]{300, 0, 0, 0, 300};
for (int i = 0; i < eqValue.length; i++) {
mEqualizer.setBandLevel((short) i, (short) eqValue[i]);
}
用完需要去释放,使用mEqualizer.setEnabled(false)去设置打开关闭音效
if (mEqualizer != null) {
mEqualizer.setEnabled(false);
mEqualizer.release();
mEqualizer = null;
}
3. 十