2013-01-13 28 views
0

我需要在存储到设备中的.3gp格式的录制列表上制作一些音频效果。制作一些音频效果并将其存储在媒体播放器中

我需要的音频效果是添加了混响声音或与其他音频文件混合在一起,这些音频文件带有交通声音或人群。

我相信混音录音和音频效果的最佳方式是使用SoundPool类。为了使的Soundpool我跟着一个教程:Getting your feet wet in Android’s SoundPool

对于回音效果我试图用类PresetReverb和EnvironmentalReverb使用audiofx包,但并没有让我的代码的效果:

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/

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

回答

0

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

你可以这样来做:

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

// MP是音频播放器的对象

Greeetz!

+0

你好,我面临同样的问题,你有没有解决这个问题。我正在寻找这么多天的解决方案,但没有得到任何。请提前感谢您分享混响问题的解决方案,热切期待您的回复...... – Ram

相关问题