[英]Android equalizer not working with AudioTrack
I am using android equalizer API to create a high pass filter.我正在使用 android 均衡器API 创建高通滤波器。 But even if I set every band to -1500 it does not seems to work.
但即使我将每个频段设置为 -1500,它似乎也不起作用。 The audio is playing well but no eq effects.
音频播放良好,但没有均衡器效果。 Here is my code.
这是我的代码。
private void attachEq(int audioSessionId) {
Equalizer eq = new Equalizer(100,audioSessionId);
short[] freqRange = eq.getBandLevelRange();
short minLvl = freqRange[0];
short maxLvl = freqRange[1];
eq.setBandLevel((short) 4,minLvl);
eq.setBandLevel((short) 3,minLvl);
eq.setBandLevel((short) 2,minLvl);
eq.setBandLevel((short) 1,minLvl);
eq.setBandLevel((short) 0,minLvl);
}
I am getting the audio session-id by我正在通过以下方式获取音频会话 ID
at.getAudioSessionId()
at.getAudioSessionId()
where at is an already initialized AudioTrack.其中at是一个已经初始化的 AudioTrack。 As I said AudioTrack is playing fine but eq doesn't seem to have any effect.
正如我所说的 AudioTrack 播放良好,但 eq 似乎没有任何影响。
Edit: Do I have to set band levels before I call at.play() or after?编辑:我是否必须在调用 at.play() 之前或之后设置频段级别? I am doing it before at.play() and it doesn't seem to work.
我是在 at.play() 之前做的,但它似乎不起作用。
I figured it out!我想到了! I wasn't calling
eq.setEnabled(true)
.我没有打电话给
eq.setEnabled(true)
。 Now it works!现在它起作用了!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.