0

我正在使用附加到 MediaPlayer 的音效制作应用程序,所以我让 BassBoost 工作

 BassBoost bassBoost = new BassBoost(0, mp2.getAudioSessionId());
             bassBoost.setEnabled(true);
             BassBoost.Settings bassBoostSettingTemp =  bassBoost.getProperties();
             BassBoost.Settings bassBoostSetting = new BassBoost.Settings(bassBoostSettingTemp.toString());
             bassBoostSetting.strength=1000;
             bassBoost.setProperties(bassBoostSetting);
             if(start2<1000){
                 start2 = (short) (start2 + 100);
                 //setUpBassBostandUI();
                 bassBoost.setStrength((short)start2);
                 System.out.println("short is: "+start2);}
             bassBoost.setStrength((short) start2); 
             mp2.attachAuxEffect(bassBoost.getId());

但我无法让混响工作,我尝试了 PresentReverb,但没有任何结果,现在我正在尝试使用 EnvironmentalReverb,但没有任何效果

EnvironmentalReverb eReverb = new EnvironmentalReverb(0, mp2.getAudioSessionId());
            eReverb.setDecayHFRatio((short) 100000);
            eReverb.setDecayTime(100000);
            eReverb.setDensity((short) 100000);
            eReverb.setDiffusion((short) 100000);
            eReverb.setReverbLevel((short) 100000);
            eReverb.setReverbDelay(100);
            eReverb.setEnabled(true);
            mp2.attachAuxEffect(eReverb.getId());
            mp2.setAuxEffectSendLevel(1.0f);
4

1 回答 1

1

检查您正在测试的任何内容是否支持它(它取决于设备)。您可以使用:

final Descriptor[] effects = AudioEffect.queryEffects();

// Determine available/supported effects 
for (final Descriptor effect : effects) {
    Log.d(TAG, effect.name.toString() + ", type: " + effect.type.toString());
}

如果名字打印出有用的东西,我不记得了。您可以在此处找到 UUID:AudioEffect.java

如果它受支持并且您仍然没有听到任何声音,您可能必须将其应用于全局音频会话以使其正常工作。这是描述here

于 2013-06-08T15:35:56.300 回答