简体   繁体   English

Android 均衡器不适用于 AudioTrack

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM