混响即通过声音在不同路径传播下造成的反射叠加产生的声音特效,在Android中,Google给出了两个实现:EnvironmentalReverb和PresetReverb,其中推荐在游戏场景中应用EnvironmentalReverb,在音乐场景中应用PresetReverb。在创建混响实例时,在音频框架层将会同时创建一个混响引擎。混响的细节由OpenSL ES 1.0.1规范定义。
        为了在通过AudioTrack、MediaPlayer进行音频播放时具有混响特效,在构建混响实例时指明音频流的会话ID即可。如果指定的会话ID为0,则混响作用于主要的音频输出混音器(mix)上,混响将会话ID指定为0需要"android.permission.MODIFY_AUDIO_SETTINGS"权限。
       EnvironmentalReverb的参数包括:
    
               PARAM_DECAY_HF_RATIO、PARAM_DECAY_TIME、PARAM_DENSITY
               PARAM_DIFFUSION、PARAM_REFLECTIONS_DELAY、PARAM_REFLECTIONS_LEVEL
                      PARAM_REVERB_DELAY、PARAM_REVERB_LEVEL、PARAM_ROOM_HF_LEVEL、PARAM_ROOM_LEVEL等。
         PresetReverb的参数包括:
                 PARAM_PRESET、PRESET_LARGEHALL、PRESET_LARGEROOM、PRESET_MEDIUMHALL
                 PRESET_MEDIUMROOM、PRESET_NONE、PRESET_PLATE、PRESET_SMALLROOM等。
         下面是设置PresetReverb属性的一般过程:
               PresetReverb mReverb = new PresetReverb(0, 0);
 		      PresetReverb.Settings settings = mReverb.getProperties();
 		      String str = settings.toString();
 		      settings = new PresetReverb.Settings(str);
 		      short preset = (settings.preset == PresetReverb.PRESET_SMALLROOM) ?
              PresetReverb.PRESET_MEDIUMROOM : PresetReverb.PRESET_SMALLROOM;
 		      settings.preset = preset;
 		      mReverb.setProperties(settings);