2011-07-15 42 views
0

我写下面的代码并在播放开始后应用它们(mp.start())。Android类MediaPlayer的attachAuxEffect不起作用

PresetReverb pr = new PresetReverb(100, 0); 
    mp.attachAuxEffect(pr.getId()); 
    mp.setAuxEffectSendLevel((float)0.7); 

而我没有听到任何区别,当我不应用上述代码。为什么?如何使用这种方法? 我已经按顺序添加了权限MODIFY_AUDIO_SETTINGS。

+0

与我同样的问题,你有没有找到任何解决方案? –

+0

尝试启用PresetReverb时,我也没有任何结果。注意你不要调用'pr.setPreset()'。但是,这并没有改变我的任何东西。 – Peterdk

回答

0

你可以用下面的代码试试:

PresetReverb pr = new PresetReverb(0, 0); 
pr.setPreset(PRESET_LARGEHALL); 
pr.setEnabled(true); 
mp.attachAuxEffect(pr.getId()); 
mp.setAuxEffectSendLevel((float)0.7); 
0

使用它像

PresetReverb mReverb = new PresetReverb(0,mMediaPlayer.getAudioSessionId());//<<<<<<<<<<<<< 
mReverb.setPreset(PresetReverb.PRESET_SMALLROOM); 
mReverb.setEnabled(true); 
mMediaPlayer.setAuxEffectSendLevel(1.0f); 

而且不需要调用mMediaPlayer.attachAuxEffect(mReverb.getId())。它已经设置好了。而全局音频会话ID 0已弃用。