0

我需要对存储在设备中的 .3gp 格式的录音列表制作一些音频效果。

我需要的音频效果是添加混响声音或与另一个音频文件与交通或人群的声音混合。

我相信混合录音和音频效果的最佳方法是使用 SoundPool 类。为了制作 SoundPool,我遵循了下一个教程:在 Android 的 SoundPool 中弄湿你的脚

对于回声效果,我正在尝试将 audiofx 包与 PresetReverb 和 EnvironmentalReverb 类一起使用,但我的代码没有产生效果:

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/

我的最后一个问题是效果后如何保存媒体播放器。

4

1 回答 1

0

您必须将新对象(混响)与您的媒体播放器会话连接起来。

你可以这样做:

eReverb = new EnvironmentalReverb(0, mp.getsessionid()); 

// mp 是你的音频播放器对象

问候!

于 2013-05-02T12:31:10.620 回答