Мне нужно сделать некоторые звуковые эффекты для списка записей в формате .3gp, которые были сохранены на устройстве.
Звуковые эффекты, которые мне нужны, — это добавление реверберирующих звуков или микширование с другими аудиофайлами со звуками движения или толпы.
Я считаю, что лучший способ микшировать аудиозаписи и звуковые эффекты — использовать класс SoundPool. Чтобы создать SoundPool, я следовал следующему руководству: Намочите ноги в Android SoundPool< /а>
Для эффекта эха я пытаюсь использовать пакет audiofx с классами PresetReverb и EnvironmentReverb, но не делаю этого с моим кодом:
public void playSoundPresetReverb(){
PresetReverb pReverb = new PresetReverb(1, 0);
mp.attachAuxEffect(pReverb.getId());
pReverb.setPreset(PresetReverb.PRESET_LARGEHALL);
pReverb.setEnabled(true);
mp.setAuxEffectSendLevel(1.0f);
}
public void playSoundEnvironmentReverb(){
eReverb = new EnvironmentalReverb(0, 0);
eReverb.setDecayHFRatio((short) 1000);
eReverb.setDecayTime(1000);
eReverb.setDensity((short) 1000);
eReverb.setDiffusion((short) 1000);
eReverb.setReverbLevel((short) -1000);
eReverb.setReverbDelay((short) 50);
eReverb.setEnabled(true);
//mp.attachAuxEffect(eReverb.getId());
mp.setAuxEffectSendLevel(1.0f);
}
Но воспроизведение звука с реверберацией без эффекта. Я думаю, что эффект применяется после перед mp.start(); но я не знаю, нужна ли какая-то подготовка для MediaPlayer.
Это LogCat для действия:
http://imageshack.us/photo/my-images/339/sinttulohh.jpg/
Мой последний вопрос, как сохранить медиаплеер после эффекта.